李宇遠,于海洋
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東 廣州 510670)
隨著網(wǎng)絡(luò)技術(shù)[1-2]的不斷發(fā)展,智能電網(wǎng)[3]中的電力運行和管理可通過集成先進的雙向通信和廣泛的計算能力進行升級,以實現(xiàn)配電系統(tǒng)的可靠性和安全性。智能電網(wǎng)不但可以消除用戶和供電商之間的障礙,而且可以通過智能監(jiān)控了解用戶的用電行為,對電力部署作適當(dāng)調(diào)整,從而提高了供電服務(wù)質(zhì)量[3]。
需要注意的是,傳統(tǒng)電網(wǎng)與智能電網(wǎng)的主要區(qū)別在于,承載用戶應(yīng)用信息的智能電表通過有線或無線網(wǎng)絡(luò)與變電站進行通信[4]。然而,電力請求有可能泄漏用戶的日常日程,因此存在通信的隱私和安全等問題[5]。此外,電力需求不僅涉及用戶的隱私,還關(guān)系到收費政策和公平性。因此,如何采取有效措施保證電力需求源的真實性和用戶隱私是關(guān)鍵。為此,許多學(xué)者對電力隱私和安全進行研究,并提出了解決方案。
文獻[6]提出基于雙聯(lián)盟鏈的智能電網(wǎng)數(shù)據(jù)共享模型。文獻[7]設(shè)計了基于抗泄漏無證書同態(tài)加密的用戶電力數(shù)據(jù)聚合和隱私保護協(xié)議。該協(xié)議主要將彈性泄漏密碼體制與無證書同態(tài)加密技術(shù)相結(jié)合,既可以避免密鑰托管問題,又可以實現(xiàn)密鑰抗泄漏。文獻[8]提出基于霧計算的智能電網(wǎng)安全與隱私保護數(shù)據(jù)聚合方案。該方案利用云霧合作的多級聚合模型和同態(tài)加密算法,對智能電表(smart meter,SM)實時數(shù)據(jù)進行多層隱私保護。然而,上述方案對簽名實現(xiàn)過程描述簡單,缺乏細致、全面的簽名實施過程。
為改善上述問題,本文提出了基于群盲簽名的智能電網(wǎng)隱私保護請求方案。方案中,智能電表(即用戶)可以向變電站發(fā)送電力請求(即一定數(shù)量的盲簽名憑證),而控制中心(control center,CC)無法通過盲標簽驗證識別真實的用戶身份。這可以確保電力用戶的隱私安全。
智能電網(wǎng)隱私保護方案結(jié)構(gòu)如圖1所示。
圖1 智能電網(wǎng)隱私保護方案結(jié)構(gòu)
智能電網(wǎng)隱私保護方案由CC、智能變電站(smart substation,SS)和SM 3層組成。其中,CC主要用于系統(tǒng)參數(shù)生成、數(shù)據(jù)傳輸過程中驗證等;SS主要用于和用戶交互,負責(zé)驗證用戶及其身份信息,同時在驗證過程中負責(zé)生產(chǎn)盲簽名協(xié)議;SM主要用于記錄智能電網(wǎng)傳輸時的數(shù)據(jù),同時可按時將1個完整周期的消費數(shù)據(jù)發(fā)送給控制中心。由于該過程易受網(wǎng)絡(luò)攻擊,因此存在數(shù)據(jù)篡改、非法竊取等威脅。由于資源受限,實際工作過程中應(yīng)當(dāng)考慮SM的存儲開銷和計算開銷。此外,SM作為一種物理載體安裝在每個家電系統(tǒng)中,使用戶可以借助SM向SS發(fā)送用電請求。SM將定期向SS發(fā)送設(shè)備信息。SM可以收集用戶的實時需求,并通過監(jiān)控和數(shù)據(jù)采集系統(tǒng)將其轉(zhuǎn)發(fā)給CC。然后,CC將進行進一步的電力部署分析,并根據(jù)各種要求向SS分配適當(dāng)?shù)碾娏?。最后,用戶可以通過SS獲得所需的電力。
攻擊者模型可根據(jù)網(wǎng)絡(luò)攻擊者的能力推斷攻擊者可能采取的行動。攻擊者模型可作以下定義。
①敵方可以竊聽用戶與SS的通信數(shù)據(jù),從而非法竊取用戶的部分消費數(shù)據(jù)。此外,除非法竊取攻擊行為以外,攻擊方式還包括惡意偽造數(shù)據(jù)和數(shù)據(jù)替換兩種。這些攻擊方式可能會對數(shù)據(jù)完整性造成威脅。
②系統(tǒng)中包括2種類型的用戶。其一為合法用戶,且具備獲取其他用戶信息的需求。需要注意的是,這類用戶僅對其他用戶的消費記錄數(shù)據(jù)感到好奇,但不存在對數(shù)據(jù)完整性造成威脅的行為。其二為有能力產(chǎn)生對消費數(shù)據(jù)完整性造成威脅行為的用戶。
基于群盲簽名隱私保護方案執(zhí)行過程如圖2所示。
圖2 基于群盲簽名隱私保護方案執(zhí)行過程
執(zhí)行過程由以下5個步驟組成。
①對系統(tǒng)變量及數(shù)據(jù)進行初始化操作。
②對不同用戶的請求進行匿名身份驗證,從而產(chǎn)生相關(guān)數(shù)據(jù)分析報告。
③對數(shù)據(jù)消息進行簽名授權(quán)。
④根據(jù)簽名規(guī)則驗證簽名是否正確,同時校驗數(shù)據(jù)是否完整。
⑤如果判斷為合法用戶,則請求授權(quán)過程通過;否則將該用戶定義為非法用戶,并跟蹤用戶行為及過程。
(1)系統(tǒng)參數(shù)生成和釋放。
①CC選擇滿足條件p|q-1的2個不同的素數(shù)p和q,并計算n=p×q。
②CC計算滿足ed≡1[modφ(n)]的RSA公鑰對(e,d)。其中:φ(n)為歐拉函數(shù);e和d分別為組公鑰和組私鑰。
③CC選擇一個循環(huán)組G〈g〉。同時,CC隨機選擇元素x并計算y=gxmodn。其中:y和x分別為群管理員(group manager,GM)的公鑰和私鑰。
④CC公開選擇安全的防沖突哈希函數(shù):
H:{0,1}*→{0,1}k
⑤CC釋放公共參數(shù)P={n,e,G,g,y,H}。
(2)注冊。
①如果一個新的成員(SS)想要加入群組,則SS隨機選擇xi并將其發(fā)送給GM。此時,CC隨機選擇yi并計算C=yyiximodn和C1=gyimodn。GM返回Pk=(C,C1)和GM的證書至SS。
②用戶i在CC中打開一個帳戶并獲取信息Ii,且有:
(1)
式中:IDi為用戶ID;ads為用戶地址,tt為訪問信息時間。
③用戶i將保存公共值gi:
gi=H(Ii)xmodn
(2)
式中:H(·)為哈希函數(shù)。
④CC在用戶家中安裝智能電表。SMi保存gi并隨機選擇zi,計算Ii:
Ii=gzimodn
(3)
式中:Ii為用戶i的id信息。
每個SM首先通過基于schnorr密碼體制執(zhí)行身份驗證協(xié)議,然后向SS說明其為有效用戶,最后將加密消息傳遞給SS。
2.2.1 匿名身份驗證
用戶匿名身份驗證詳細過程如下。
①SMi隨機選擇ti,計算T=gtimodn并發(fā)送給SS。
③用戶計算Si=ti-cbzi,并將Si發(fā)送給SS。
2.2.2 數(shù)據(jù)報告
①考慮到數(shù)據(jù)傳輸過程中安全性要求,本文應(yīng)用安全參數(shù)λ對不同用戶的消費數(shù)據(jù)進行限制,即SM在一天內(nèi)生成數(shù)據(jù)塊的個數(shù)不超過λ個。同時,消耗數(shù)據(jù)定義為m=(co,tt)。其中:co表示不同用戶消費數(shù)據(jù),且有co={L1,L2,…,Ll},l為數(shù)據(jù)維數(shù)。
(4)
⑤SMk選擇任意盲因子b,并乘以H(m),計算H(m)′=bH(m)和β=gbmodn。然后,SMk將[H(m)′,β]發(fā)送給簽名者。
生成簽名過程執(zhí)行如下。
①簽名者首先隨機選擇一個素數(shù)k并計算k-1(乘法逆),然后計算簽名σ*=(r,s*,C,C1)。其中:s*=k-1[H(m)′-ryi]modn;r=βkmodn;C1=gyi;C=yyixi。
②SMk通過s去除盲因子。其計算過程描述如下。
s=s*b-1=b-1k-1[H(m)′-ryi]modn
(5)
然后,計算簽名σ=(r,s,C,C1),并將σ發(fā)送給CC。
2.4.1 驗證過程
為確保數(shù)據(jù)的正確性和數(shù)據(jù)的完整性,詳細驗證過程步驟如下。
②CC判斷驗證簽名是否正確。具體公式如下。
(6)
如果簽名驗證過程正確,則說明m在執(zhí)行傳輸過程中沒有被篡改過。
③若簽名驗證過程通過,則根據(jù)標簽T驗證m,從而確定測試數(shù)據(jù)是否被修改過。因此,CC可解密M計算T、m和ui。計算過程如下:
(7)
式中:TG為時間戮。
(8)
式中:MGj為第j個用戶的電子原文。
(9)
式中:DG為數(shù)字簽名信息。
(10)
式中:HG為待驗證的數(shù)據(jù)。
④CC驗證式(11)是否成立。
DG×e(H,ptk)=e(TG,gSMk)
(11)
⑤如果式(11)成立,則說明消費者的信息未被篡改;如果驗證失敗,CC將執(zhí)行撤銷用戶的匿名過程,從而校驗是否有惡意用戶對消費者消費信息進行更改。
2.4.2 撤銷用戶匿名過程
跟蹤簽名人身份,撤銷用戶匿名過程如下。
①當(dāng)簽名驗證過程存在疑問時,CC獲取驗證者的身份xi,并根據(jù)CC發(fā)送的私鑰獲取SS相關(guān)信息。
(12)
(13)
CC根據(jù)數(shù)據(jù)庫中的ifmi與通過與gSM比較,從而計算gSMi。該過程確保了不同用戶的身份驗證過程。
本節(jié)以計算量和時間消耗為指標,與同態(tài)加密[9]、屬性基群簽名(attribute base group signature,ABGS)[10]、數(shù)據(jù)聚合方案[11]等方法進行對比,對所提方案進行性能及分析。
首先,將系統(tǒng)執(zhí)行過程分為系統(tǒng)初始設(shè)置階段、匿名認證過程階段、盲簽名生成階段和驗證過程階段。令M為每個階段計算時的模乘運算、E為計算時的模冪運算、W為計算時的Weil配對運算、H為計算時的哈希運算、v為SM的數(shù)量、s為SS的數(shù)量。各階段的計算復(fù)雜度對比結(jié)果如表1所示。
表1 各階段的計算復(fù)雜度對比結(jié)果
為了模擬不同方案在現(xiàn)實中時間消耗,在操作系統(tǒng)為Ubuntu16.04、 Intel Core i5 CPU和32 GB內(nèi)存的計算機端,用C語言進行了仿真試驗。需注意,試驗中使用了基于配對的密碼學(xué)(pairing based cryptography,PBC)庫和GUN多精度算法(GNU multiple precision,GMP)庫,且所有運算消耗時間均為PBC及GMP實際統(tǒng)計值。為排除隨機現(xiàn)象帶來的干擾,共進行20組試驗,且取平均值為最終結(jié)果。得到最終結(jié)果后,本文利用Python matplotlib庫作圖。
不同用戶和SM條件下,各方案時間消耗結(jié)果分別如圖3和圖4所示。
圖3 各方案時間消耗對比結(jié)果(不同用戶數(shù)量)
圖4 各方案時間消耗對比結(jié)果(不同SS數(shù)量)
圖3中,不同模型中智能變電站個數(shù)為4。圖4中,不同模型中用戶個數(shù)為40。由圖3和圖4可知,時間成本隨用戶和變電站的數(shù)量線性增加,但增加速度比略低于其他方法。仿真結(jié)果驗證了本文方法能夠應(yīng)用于大規(guī)模用戶。
本文提出了一種實用的、具有匿名認證和隱私保護功能的智能電網(wǎng)群盲簽名方案。方案中,SM(即用戶)可以向SS發(fā)送電力請求(即一定數(shù)量的盲簽名憑證),而CC無法通過盲標簽驗證來識別真實的用戶身份,從而確保電力用戶隱私的安全性。