楊 麗,陳思光,2
1(南京郵電大學江蘇省通信與網絡技術工程研究中心,南京210003)
2(南京郵電大學江蘇省寬帶無線通信與物聯網重點實驗室,南京210003)
隨著無線通信技術的發展,各種智能傳感設備應運而生,智能設備可以通過收集數據并將數據傳輸到云中心,以進行實時觀察和智能決策.于是智能家居[1]、智能醫療[2]、智能城市[3],智能電網[4]等概念也被相繼提出,而智能電網作為下一代電網受到了越來越多的關注.在智能電網系統中,分布式的智能電表生成數據報告,并通過互聯網傳輸到遠程云服務器以進行進一步分析,云服務器可以定期監控電力輸送和用電信息,以便進行實時決策[5,6].但是這些智能電表會生成大量數據,這將為云中心帶來極大的負擔;同時在智能電表到云服務器的數據存儲和數據傳輸過程中,智能電網必須確保這些數據的隱私性、可靠性、安全性、靈活性和可擴展性.而隨著連接到智能電網的用戶數量的增加,解決這些問題將變得更加困難.
2012 年,思科提出了“霧計算”的概念,以解決云計算中高延遲,缺乏對移動性和位置感知的支持等問題[7].霧計算作為一種很有前途的分布式模型,它可以在網絡邊緣存儲和處理數據,這不僅可以減少系統的傳輸開銷,還可以提高其實時處理能力.尤其是在智能電網這種生成報告頻率較高的基礎設施中,霧計算設備可以首先在網絡邊緣預處理要報告的數據,然后將預處理結果轉發到云服務器,從而大大地節省帶寬[8].同時霧計算與云計算的結合將為智能電網的發展帶來更大的可能性,例如,與基于云的系統相比,在網絡邊緣保留隱私數據使客戶能夠以快速和安全的方式訪問數據,也更能體現智能電網對于實時性的要求[9].
然而在智能電網應用中,監控家庭的能源消耗同樣會帶來嚴重的隱私威脅.因為攻擊者可能會通過攻擊通信鏈路、霧設備以及云服務器以獲得用戶的個人能量消耗,而細粒度的能量消耗數據可以用于推斷用戶的生活方式、日常活動、以及具有合理推論的其他私人信息[10],除此之外攻擊者還可以通過向智能電網注入虛假信息以實現對能源的竊取,或提出不合理的需求造成電網的癱瘓,這都將導致不同程度上的經濟損失[11].由此可看出智能電網有兩大任務,一是保護用戶的隱私信息,二是得到匯總的用電數據,因此隱私數據的采集與聚合是一個非常重要的研究課題[12].
目前關于智能電網中隱私數據聚合的研究主要有兩種方法,第一種方法是通過屏蔽用戶的真實身份來掩蓋其隱私信息,例如文獻[13]中所描述的按用戶的地理位置對用戶進行分組,并將相同的序列號分配給同一組中的每個成員,通過這種匿名方案保證控制中心可以在不知道發送者的真實身份的情況下獲得所有用戶的數據;但這種匿名性導致了控制中心無法對數據來源的有效性進行認證;除此之外,基于屏蔽身份的數據聚合方案中想要尋找一個可靠的第三方來保證匿名的安全性是很困難的.第二種方法是通過屏蔽用戶的實時用電數據來保護用戶的隱私信息,該方法又主要集中在以下三類.
第一類是文獻[14-16]中所描述的將智能電表連接到硬件設備,例如將智能電表連接到電池上,智能電網和家用電池同時為用戶提供電力.當用戶的用電量明顯增加時,電池放電,反之,為電池充電,以此來隱藏用戶的實時電力消耗,但是電池頻繁的放電與充電會縮短電池的使用壽命.換言之,這些操作雖然減輕了智能電網在計算和通信上的負擔,卻需要頻繁地進行維護,這種代價是非常昂貴的.
第二類是文獻[17-19]中所描述的通過在智能電表處添加噪聲并在控制中心將其除去來掩蓋智能電表的真實讀數,這些方法雖然可以實現對隱私數據的保護,但是由于添加噪聲的操作,導致控制中心無法準確地重建智能電表的真實讀數,對于某些對精度要求較高的場景,這些方法并不適用.
第三類是采用加密方法,近來的一些研究主要利用公鑰加密方法的同態性來匯聚特定區域的電力消耗,在這個過程中,用戶的個人讀數一直處于加密狀態,從而實現保護用戶隱私信息的目的.例如,文獻[20]提出了一種在智能電網通信中有效的隱私保護聚合方案,該方案主要利用擴展的Paillier密碼系統實現安全的數據聚合,同時還利用超遞增序列將多維數據構造成一維,以此減少通信開銷,但是效率依然不高.文獻[21]描述了一種基于雙線性配對的隱私保護數據聚合方案,它通過使用散列和同態加法聚合技術實現隱私保護,然而配對操作不可避免地帶來了較高的計算成本.文獻[22]將用戶的數據劃分為兩個不同的組,該方案使控制中心能夠以更低的成本獲得更細粒度的數據聚合結果,但其無法確保數據的完整性.文獻[23]描述了一種基于同態加密、同態認證器和陷門散列函數的安全數據聚合方案,該方案可以在聚合過程中實現針對惡意聚合器的數據機密性和完整性驗證.文獻[24]描述了一種用于霧計算的輕量級隱私保護數據聚合方案,將混合數據聚合為一個,同時可以在霧節點處提前過濾錯誤數據,但兩種方案都無法實現更加細粒度的聚合,無法滿足智能電網所需的靈活性,應用范圍受限.
基于上述研究方案在計算成本、通信開銷、數據完整性驗證以及靈活性等方面存在的不足,本文提出了一種霧輔助的輕量級隱私保護數據多級聚合方案(F-LPDMA),該方案的主要特點是利用改進的Paillier 加密系統結合多級聚合模型實現隱私數據的細粒度聚合,同時利用哈希函數的單向性在網絡邊緣和云端進行輕量級認證.具體來說,該方案主要貢獻包含以下三點:
1)提出的F-LPDMA 實現了隱私數據的細粒度聚合,利用云霧協作的多級聚合模型使中間層次的霧節點能夠定期從連接的智能電表處收集數據,并導出細粒度的霧級聚合結果,該細粒度聚合可有效節省通信開銷,提高聚合方案的靈活性;同時,為云層的粗粒度聚合提供數據以進行云級聚合.
2)實現了隱私數據的高效聚合,采用同態加密方法實現對隱私數據的保護,同時利用模數的性質對加密算法進行優化使計算成本降低,又結合霍納法則對聚合結果進行高速解析以提升多項式的解析速率,從而提高聚合方案的高效性.
3)實現了隱私數據完整性和真實性的輕量級認證,利用散列函數的單向性和批量簽名驗證技術過濾錯誤數據,避開復雜的配對運算,從而大大減少系統的計算成本和通信開銷,實現輕量級認證.
本文的其他部分構成如下:第3 部分描述了與F-LPDMA方案相關的預備知識;第4 部分描述該方案的系統模型;第5部分詳細描述了該方案的設計;第6 部分從計算成本與通信開銷的角度上對該方案進行了性能上的分析;最后,第7 部分總結全文,再次說明本文所提方案的優勢.
同態加密(Homomorphic Encryption)
1)同態加密方案允許在密文上直接執行算術運算,這意味著無需對密文解密即可進行所需操作,這在很大程度上增強了數據的隱私性.Paillier 加密算法是一種加性同態加密,主要由三個部分組成,密鑰生成(Key Generation),加密操作(Encryption),解密操作(Decryption),具體如下:
①密鑰生成:給定安全參數k,選擇兩個大素數p 和q,p=q=|k|,需要滿足 gcd(qp,(p-1)(q-1))=1,然后計算出 n=pq,和 λ=lcm(p-1,q-1)選擇一個生成元 g∈瓕*n2,同時需要保證μ=(L(gλmod n2))-1mod n 存在.其中函數L定義為 L(u)=u-1/n.因此,得到 Paillier 加密算法的公鑰(n,g)、私鑰(λ,μ).
②加密操作:對于任意的明文m∈瓕n,選擇隨機數r∈,則加密后的密文為c=gmrnmodn2.
③解密操作:對于任意的明文得到密文c,計算明文m 為m=L(cλmodn2)/L(gλmodn2)modn.
假設某個電網覆蓋區域被分成m 個子區域,每個子區域下存在一個霧節點fogj(對應的霧節點為 fog1,fog2,…,fogm),每個霧節點fogj下存在w 個智能電表SMij(SMij表示第 j 個霧節點下的第 i 個智能電表,i=1,2,…,w).

圖1 系統模型Fig.1 System model
由圖1 可看出,該系統模型主要包括以下四個實體:可信機構(Trusted Authority),智能電表(Smart Meter),霧節點(Fog Node),云服務器(Cloud Sever).
1)可信任的權限(TA):TA 是受信任的第三方,主要負責生成密鑰并將其分配給所有實體,具有強大的處理能力.
2)智能電表(SMij):智能電表SMij可以生成用戶的實時用電信息,并對它們進行加密和簽名,隨后將這些數據報告傳輸至相應的霧節點等待聚合.除此之外,用戶可以向霧節點發送請求實時查詢該智能電表SMij所在子區域及其周邊子區域的總用電信息,以便用戶了解各區域的用電情況.
3)霧節點(fogj):霧節點fogj是智能電表和云服務器間的中間層,部署在網絡邊緣.每個子區域內布置有一個霧節點,霧節點在其覆蓋區域內與本地智能電表交互,考慮到外部攻擊者還可能發起虛假數據注入攻擊,霧節點將在接收來自智能電表的數據之前對需要其進行過濾,隨后霧節點對過濾之后的數據進行一級聚合,最后將聚合結果數據轉發到云端.除此之外,霧節點還可以存儲該子區域以及周邊子區域的用電信息,以此來緩解云服務器的負擔,減少傳輸時延,方便用戶的實時查詢.
4)云服務器:由于智能電網對于電力的調度和需求是復雜多樣的,即智能電網可能需要針對不同范圍或者特定范圍的進行電力調控.所以通過云服務器對來自霧節點的聚合加密數據進行二次聚合,解密獲得聚合明文后運用霍納法則對聚合明文執行高速解析,以獲取各個子區域的用電量,實現對電力的靈活調控.除此之外,云服務器還將解析獲得的各個子區域的用電量生成報告發送到霧節點,用以減輕云服務器的資源占用情況,同時由于霧節點位于網絡邊緣,可以使用戶以較低的時延實現用電數據的實時查詢.
根據系統模型,本文主要考慮以下三個方面的網絡威脅:1)霧節點和云服務器上的威脅:霧節點和云服務器被認為是誠實而好奇的,它們遵循協議,但同時會對某些細節感到好奇;其次霧節點與云服務器有可能會被俘虜.2)攻擊者竊聽通信鏈路的威脅:存在攻擊者可能通過竊聽通信鏈路獲取用戶的隱私信息.3)攻擊者主動攻擊的威脅:攻擊者可能會通過發起一些主動攻擊(例如修改,偽造,重放等)損害隱私數據的真實性和完整性.
根據系統模型,本文提出了一種在智能電網中霧輔助的輕量級隱私保護數據多級聚合方案(F-LPDMA),該方案主要通過以下4 個階段實現:系統初始化,智能電表處用戶報告的生成,霧節點處聚合報告的生成,云服務器處聚合報告的生成以及聚合報告的讀取.圖2 詳細描述了具體的過程.
1)系統參數的生成
①假設TA 中存在一個由已生成密鑰所組成的一個全局密鑰池={kij,kj;0≤i≤w;0≤j≤m},TA 將密鑰池不同的密鑰分配給智能電表和霧計算設備用于注冊.
②TA 首先選擇兩個安全素數p 和q,計算n=pq 作為同態加密的公鑰,同時定義函數L(u)=(u-1)/n.
③計算 λ=lcm(p-1,q-1),令 g=n+1,保證 μ=(L(gλmod n2))-1mod n 存在,從而得到 Paillier 同態加密公鑰n,私鑰 λ.
⑤同時,TA 選擇一個安全的加密散列函數用于隱私數據的簽名:h:{0,1}*→{0,1}l.
⑥對于智能電表,選擇一個隨機安全密鑰αij,令mod n2,得到βij,類似地;在霧節點,選擇一個隨機安全密鑰αj,令,得到 βj.
⑦TA 生成系統參數(λ,n,kij,kj,s,h,αij,αj,βij,βj)后,發布系統參數(n,h),同時分配其余參數到各個實體.具體地,TA 通過秘密信道分配{kij,s,αij}到智能電表、分配{kj,αj,βij}到霧節點,分配秘鑰{λ,βj}到云服務器.
2)智能電表與霧節點注冊
本方案中,新加入的智能電表和霧計算設備首先需要向TA 申請注冊信息,具體注冊過程如下.

圖2 階段流程Fig.2 Stage process
首先新加入的智能電表通過TA 進行注冊:
①新加入的智能電表會通過自身的內置算法生成信息mij,mij主要包含智能電表的IDij,戶主信息,定位信息等,該注冊信息具有唯一標識性.
②智能電表用TA 分發的初始密鑰kij對智能電表SMij的注冊信息進行加密,加密后得到密文Cij=E(mij,kij).
③將初始密鑰kij和mij作為hash 函數的輸入,生成消息驗證碼 MACij=h(mij‖kij),發送 REQ=(Cij‖MACij)到 TA.
④TA 在收到新加入的智能電表的注冊請求信息時,對加密的注冊信息Cij使用初始密鑰kij進行解密,經過計算得到mij.然后將初始密鑰kij與解密得到的mij作為hash 函數的輸入,得到消息驗證碼 MAC’ij=h(mij‖kij).
⑤與接收的MAC 進行比較,若一致,則同意該智能電表注冊要求,同時發送驗證成功消息到智能電表,公布設備的IDij,否則,拒絕注冊.
隨后新加入的霧計算設備通過TA 進行注冊:
①與智能電表類似,霧計算設備同樣具有注冊信息mfd.
②加密注冊信息Cj=E(mfd,kj).
③將初始密鑰kj與mfd作為hash 函數的輸入,生成消息驗證碼 MACj=h(mfd‖kj),發送 REQ=(Cj‖MACj)到 TA.
④TA 在收到霧計算設備的注冊請求信息時,對加密的注冊信息進行解密,得到mfd,與kj一起生成 MAC’j=h(mfd‖kj).
⑤與接收的MACj進行比較,若一致,則同意該霧計算設備注冊,同時發送驗證成功消息到霧計算設備,TA 公布設備的IDj,否則,拒絕注冊.5.2
基于SMij中產生的實時用電數據往往會暴露用戶的隱私信息,所以本方案首先對該實時用電數據進行加密,隨后生成加密數據簽名,并將用戶報告上傳到霧節點,等待霧節點對所收到的來自于其所覆蓋子區域的用電數據進行安全聚合.假設某子區域j內,有w 個智能電表,則j內第i 個智能電表SMij存儲的信息為 mij(0≤i≤w,0≤j≤m),在某個具體的時間周期Tp,智能電表SMij處將會進行以下操作.
1)智能電表生成在Tp這個時間周期內的用電數據的相關信息mij,包括智能電表SMij的IDij,用電量dij,以及當前時間戳Tp(用于預防潛在的重播攻擊).

2)智能電表需要對當前的用電量dij進行加密,采用擴展的Paillier 同態加密算法,得到加密后的用電數據Cij.

3)生成密文簽名:為了提高密文簽名的安全性,采用當前時間戳Tp作為偽隨機數生成器的種子,與智能電表的IDij散列得到偽隨機數yij.由于時間戳Tp在不停地變化,與之對應的偽隨機數也相應變化,從而生成的偽隨機數也是一次性的,更能保證密文簽名的安全性.隨后聯合TA 分配的密鑰αij生成聚合明文的簽名MACij.

4)發送用戶報告至霧節點fogj:最后,SMij發送用戶報告(IDij,Cij,MACij,Tp)到所屬霧節點 fogj.
第j 個霧節點fogj接收到該子區域內所有智能電表SMij發送的報告(IDij,Cij,MACij,Tp)后,將進行以下操作:
1)檢查智能電表的IDij和當前時間戳Tp;首先檢查智能電表的IDij是否合法,即該智能電表是否在TA 上注冊成功,旨在檢查該聚合報告來源的真實性;隨后檢查時間戳Tp,假設智能電表每15 分鐘上傳一次用戶報告,檢查Tp是否在有效期內,旨在抵御潛在的重放攻擊.若通過檢驗,則證明智能電表IDij和當前時間戳Tp檢查有效.
2)檢驗密文簽名:如果智能電表IDij和當前時間戳Tp檢查有效,則進一步驗證聚合密文的簽名MACij.

根據 αij=βi-j1mod n2可知,若等式(5)成立,則證明接收的簽名是有效的,即聚合報告沒有遭到損壞,否則拒絕接受.
3)隱私保護數據一級聚合:霧節點fogj對來自該區域所有w 個智能電表的用電數據進行一級聚合,得到隱私數據的聚合密文Cj.

4)生成聚合密文的簽名:與智能電表處類似,生成聚合明文的簽名MACj.

5)發送聚合報告至云服務器:霧節點fogj將聚合報告(IDj,Cj,MACj,Tp)發送到云服務器.
云服務器收到來自m 個霧節點fogj的細粒度聚合報告(IDj,Cj,MACj,Tp)后,將進行以下操作:
1)檢查霧節點IDj和時間戳Tp:首先檢查霧節點的IDj是否合法,即該霧節點是否在TA 上注冊成功,旨在檢查該聚合報告來源的真實性;隨后檢查時間戳Tp,假設霧節點每15分鐘上傳一次聚合報告,檢查Tp是否在有效期內,旨在抵御潛在的重放攻擊.若通過檢驗,則證明霧節點IDj和當前時間戳Tp檢查有效.
2)檢驗聚合密文簽名MACj:如果霧節點IDj和時間戳Tp檢查有效,則進一步驗證聚合密文的簽名MACj.

若等式成立,則證明聚合報告的簽名是有效的,即聚合報告沒有遭到損壞,否則拒絕接受.
3)隱私保護數據二級聚合:對來自j 個子區域的霧節點的數據進行二級聚合,即粗粒度聚合,得到二級聚合密文C.

4)讀取聚合報告:利用Paillier 解密方法將加密數據解密成明文.首先對公式(9)計算得到的聚合密文C 進行分析:


同時令:

則可獲得符合Paillier 密文形式的密文C.

隨后云服務器利用Paillier 解密C,得到聚合明文M.

其中L(u)=u-1/n.
得到的M 是一個符合霍納規則的一元多項式,其中每項系數對應每個子區域j的總用電量為Uj.

隨后運用霍納法則對明文M 進行解析,得到多項式的每項系數,即每個子區域j的總用電量,從而實現細粒度的數據聚合.而區域總的用電量可以通過計算U1+U2+…+Um得到,若云服務器想知道某幾個子區域的總用電量,則分別聚合這幾個區域的用電量,以實現電量的靈活調控.
5)發送解析得到的子區域的用電量(U1,U2,…,Um)至霧節點,方便用戶的實時查詢.
本文將從計算成本和通信開銷的角度來評估F-LPDMA方案的效率,同時將 F-LPDMA 方案與現有的 SEDA[19],PDAF[21]二種方案進行比較.實驗中設置 RSA 參數 n、p 分別為1024bits、160bits.為了便于評估本文所提出方案的性能,本部分僅關注上述三種方案在單個區域內的效率,同時為了方便說明,用 TE1,TE2,TM,TPA來分別表示中的指數運算,中的指數運算、乘法運算,以及雙線性配對所需要的時間成本.本部分仿真使用基于配對加密庫(PBC,pairing-based cryptography)來執行上述計算操作并評估其執行開銷.數據源自愛爾蘭社會科學數據檔案館能源管制委員會(CER)提供的當地居民用電真實數據1http://www.ucd.ie/issda/data/commissionforenergyregulationcer/.實驗運行在處理器為 Intel Core i5-7200U CPU@2.50GHZ,8.00GB RAM 的筆記本電腦上.表1 列出了這幾種運算所耗費的時間成本.
本文首先從計算成本出發對F-LPDMA 方案進行分析與比較:首先對加密算法Paillier 的計算成本進行分析,本文假設某子區域j內有w 個智能電表設備,則可以進行如下分析:

表1 各運算計算開銷Table 1 Cost of operations
1)加密過程中:智能電表首先要對用電數據進行加密,由于加密的密文形式為Ci=(1+dijn)·s,僅需要兩次簡單的乘法運算,即在 上進行2w 次乘法運算TM,而其他兩種方案采用的paillier 密文形式為Ci=gmrnmod n2,需要進行2w 次大指數模乘運算TE1,這個時間遠遠大于本方案所需的時間.
2)聚合階段:為了完成密文的聚合操作,需要在 上進行w 次乘法運算TM,這個過程所花費時間與其它方案相同.
3)解密過程中:由于解密的密文為m=L(Cλmod n2)·λ-1mod n,即需要在上進行1 次指數運算 TE1,1 次乘法運算TM,而其他兩種方案采用的解密密文為m=L(Cλmod n2)μmod n,即需要在上進行2 次指數運算TE1,在 上進行3 次指數運算TE2,所需時間均大于本方案所需時間.
其次對于簽名與驗證,本方案主要利用了散列函數的單向性實現對數據完整性和真實性的驗證,其他兩種方案則采用了基于雙線性配對的方法,而散列運算的時間成本相較于配對運算幾乎可以忽略不記,因此本方案在簽名與驗證階段僅需要進行2w 次乘法運算TM、指數運算TE1.
類似地,其他方案具體開銷見表2.

表2 計算開銷Table 2 Comparison of computation cost
圖3 更直觀地顯示了三種方案中總體計算的時間成本的比較結果,通過圖3 可以看出本方案所需的計算時間比其他兩種方案顯著減少,由此可得出結論:本方案比其他兩種方案具有更低的計算開銷,同時隨著用戶數量的增多,這種優勢將更加明顯.
接下來本文將從通信開銷的角度對F-LPDMA 方案進行如下分析與比較:首先分別分析在進行數據聚合時,智能電表SMij與霧節點fogj之間、霧節點fogj與云服務器 Cloud 之間的通信開銷大小.
1)首先在SMij-to-fogj通信部分中,每個智能電表生成單獨的用戶隱私數據報告并將其發送到霧節點,該報告的形式為(IDij,Cij,MACij,Tp),其大小為 SizeSMij.所以在每個特定時段,霧節點收集來自所有w 個智能電表的報告,其大小為SizeSM=w·SizeSMij.假 設 n 是 1024-bits,| p | 是 160-bits,則SizeSMij=|IDij|+2048+160+|Tp| bits,同時為了便于比較,假設|ID|和|Tp|為 160-bits.

圖3 計算開銷Fig.3 Computation cost
2)接下來,本文將考慮fog-to-cloud 通信鏈路上產生的開銷.在聚合階段,云端匯總了來自所有子區域的j 個霧節點的聚合報告,該聚合報告的形式為(IDj,Cj,MACj,Tp),聚合報告的大小為Sizefog=|IDj|+2048+160+|Tp| bits;而由于在區域j中霧節點將w 個用戶報告聚合成一個報告,所需的通信開銷由原本的(|IDj|+2048+160+|Tp|)w 位減少到|IDj|+2048+160+|Tp| bits 位,這意味著fog-to-cloud 之間的通信開銷和用戶的數量之間沒有相關性,用戶數量的增多也不會導致fog-to-cloud 通信鏈路上開銷的提高.

圖4 通信開銷Fig.4 Communication overhead
由圖4 可以看出,本方案所需的通信開銷明顯低于其他兩種方案,同時隨著電表數量的增多,這種優勢將更加明顯.
本文提出了一種輕量級的隱私保護數據多級聚合方案F-LPDMA,實現了智能電網中隱私數據聚合的靈活性,高效性以及輕量級認證,同時通過分析可看出F-LPDMA 方案可以實現數據的機密性和隱私保護,確保霧設備和云中心在整個聚合過程中不知道用戶的私人信息.最后,本文在計算成本和通信方面對F-LPDMA 方案進行了評估,通過與現有聚合方案的比較分析表明F-LPDMA 方案具有更小的計算和通信開銷.未來將考慮把數據空時壓縮[25-27]、網絡資源優化[28]、深度學習[29]等理論融合進來,進一步提升網絡系統性能與智能性.