夏偉,蔡文婷,劉陽
(南方電網數字電網研究院有限公司, 廣州 510000)
數據聚合是對城市配電網信息綜合處理的重要技術手段,通過對數據聚合操作能夠降低數據采集過程中的通信費用和能量消耗。但是在數據聚合中沒有受到隱私保護,致使配電網數據常出現丟失、篡改現場,因此,在數據隱私保護的基礎上,對城市配電網多級網格數據聚合已成為目前亟需解決的問題。
針對該問題,國內外學者研究了數據聚合算法,可以有效聚合城市配電網多級網格數據。其中,文獻[1]研究了基于霧計算的智能電網安全與隱私保護數據聚合方法,該方法利用云霧合作的加密算法對數據多層隱私保護,并在霧端對數據進行了多層融合,實現整個網絡數據的聚合;文獻[2]研究了霧輔助的輕量級隱私保護數據多級聚合方法,該方法利用霧協作方法收集數據,采用模數性質對數據加密,并借助三列函數設計認證方法,實現數據的聚合。但是上述兩種算法在進行數據聚合過程中,沒有受到隱私保護,導致數據常出現丟失、篡改情況。文獻[3]研究了智能電網中的數據聚合方法,結合Paillier加密體制和ElGamal加密體制對智能電網數據進行加密處理,并通過雙線性對技術對數據聚合。文獻[4]研究了一種緩解能量空洞的數據聚合算法,通過數據聚合的方式使每個節點發送數據時以最大的分片數進行傳送,采用節能的方式對WSN能耗進行優化,以減小EH的區域,使全網能耗最低。但是上述兩種算法的加密性較差,導致數據聚合時間較長,聚合效率較低。
而隱私同態是一種直接對密文數據進行相關運算的加密技術,能夠避免數據融合時隱私信息的泄漏,常應用于在數據聚合方案中。基于隱私同態的這個優點,將其應用到城市配電網多級網格數據聚合中,根據重新獲取的數據,并在通過密度閾值函數設置、初始聚類中心選取與網格聚類的步驟下完成城市配電網多級網格數據聚合,并采用隱私同態技術對聚合后的數據進行加密處理。通過仿真實驗可知,文中在實現數據聚合的同時,提高了數據的安全性,解決了傳統算法中存在的問題。
在進行城市配電網多級網格數據聚合計算之前,首先要通過電力公司數據庫,獲取保存在電力公司中的所有數據,以進行數據聚合,包括涉及到的用電資源、網格信息等。雖然數據庫中存有大量各類型數據,但與所研究的網格數據相差較大,每個數據的概念與結構也應符合計算需求,因此要在經過處理后的數據庫中篩選與文中相匹配的數據。首先,在大數據中找到與公共信息模型可交換的數據,互相融合,得到一個基于公共信息模型(CIM模型)的結構。然后,選擇一個最優的鏈路,在此過程中不斷完善數據結構,為配電網系統奠定一個夯實的基礎。最后,對重獲的數據進行分析,提供一個最佳的聚類方式,保證電網的穩定運行,其這個配電網數據重獲的過程如圖1所示。
按照圖1中的步驟分析,個別數據的交換方式仍然不能全部導入,格式與模型中的結構也互相不統一,致使準確率有些許波動。因此,需要進行格式統一,從而降低數據通信開銷。

圖1 配電網數據重獲過程
城市配電網多級網格映射關系圖如圖2所示。城市配電網多級網格的劃分需綜合考慮供電區相對獨立性、網格完整性、管理便利性等因素,主要分為高壓層、目標網架、中壓線路層、配電站層、配變層。

圖2 配電網多級網格映射關系圖
傳統的聚類算法是基于數據庫完整的情況下進行的,而數據流的聚類是基于數據的聚類算法上的,在其他領域上具有廣泛的應用,例如商業互通、網絡記錄的記錄與分析。
對城市配電網多級網格數據空間進行網格單元劃分,每個網格單元中,存在多維空間s,將k維為均分成長度相等的dk段,那么在dk段中的數據集合表示為:
sk={sk1,sk2,…,sk}
(1)

d=(d1,d2,…,dn)∈m
(2)
并且約束條件[4]為:
dk∈skgt,(k=1,…,n)
(3)
式中gt為空間中的網格單元。若整個配電網中網格單元的總數為:
(4)

D(m,td)=λtD(m,tb)+1
(5)
式中td為時間。如果數據在時刻ta時進入網格單元,其數據密度就會與時間的改變相關,將其定義為:
D(d,t)=λt-ta
(6)
式中λ為流動系數,且為整數,一般徘徊在0~1,d代表數據,tb代表某一時刻。如果網格單元m中數據的密集程度為D(m,t),在不同的時刻t與y的分布密度也就不同,分別如下:
(7)
(8)
當網格單元的數據密度滿足Di≤D(m,t),那么就稱為密集單元,式中Zt與Zy為常量,且兩者的關系為Zt>Zy,如果滿足Dy>D(m,t)≤Dt,那么在此條件下的網格單元為替代網格單元,當Dy>D(m,t)時,網格單元就為噪聲網格單元[5-7]。
如果噪聲單元密度不斷增大,在時刻y的密度就遠遠大于普通網格單元密度,一般都會慢慢消化網格中的密集數據,經過處理,就形成了一個進化的網格單元,叫做進化噪聲單元;而剩下的網格單元情況是本來只具有很少的數據,經過慢慢疊加[8],逐漸演變成噪聲網格單元,只有將噪聲網格單元減少到最小或是消失,才會實現數據的有效聚合,保留網格數據攜帶的信息,并且被永久儲存。
假設單元m的初始移動時間為ta,最后移動時間為tb,那么兩者的密度閾值函數[9]定義為:
(9)
基于以上函數,就可以判斷單元是否是噪聲網格單元,集合的最小值Dmin按照時間的長短來辨別新增的網格數據,且會隨著時間的改變而進行自身優化,經過時間的淘汰[10],就可以確定密度函數的閾值,當接收到網格數據后,Dmin(tb,ta)的值會立即降到最小,因此利用Dmin(tb,ta)的變化來分析網格單元的類型的方法不但可行且效率最高。
選取聚類中心的目的在于判斷數據之間的距離,獲取最佳聚類系數,為網格聚類奠定基礎。聚類中心的選取主要與系數K相關,利用其均值隨機挑選一個初始聚類中心,但其結果容易受到影響,導致結果會處于一個波動的范圍,假如以距離為主進行選擇,就會出現分貝不同的噪聲干擾,聚類的效果并不明顯。因此在進行初始聚類中心的選取[11]時,要準確無誤地判斷數據之間的距離以解決分布的密度問題,從網格數據庫中選擇,在密集單元里選出一個位移最大的初始K值作為聚類中心[12],盡量將噪聲的干擾降到最低,從而提升算法的運行效率。假設將一個密集單元作為圓心,以數據間最大距離r作為半徑,其中包含的圓形區域就叫做r-鄰域[13],按照以往的聚類實踐,r的大小通常是數據之間最大距離的二分之一。
設定一個上限閾值為p,那么在r區域中最多有p個對象,因此稱此對象為網格中心對象[14],而兩個多維空間之間的最佳距離為:
(10)
式中i和j為兩個不同的對象,d(i,j)為兩個數據之間的最佳距離,n為空間維度,xi1,xi2,...,xin與yi1,yi2,...,yin為n維空間中的數據。該算法是基于兩個數據之間最佳距離來計算區域中的對象總數[15],如果數量超過閾值p,就可以將其挑選出來,移動到密集單元集合D中,然后在集合中找出初始聚類中心,利用系數K進行聚類計算。
為了使得到的效果優于原始值[16],將網格內的數據進行分離,運用數據之間的差異算法來進行評價,假設一組數據X={x1,x2,...,xN},并且分成k個小組為C1,C2,...,Ck,而每一組的聚類中心分別為m1,m2,...,mk,將網格數據中的某一點與聚類中心的距離定義[17]為:
(11)
而數據間的特異性決定聚類之間的差別[18],那么將網格數據中的邊緣與聚類中心的距離定義為:
(12)
式中N為數據總數,Cj小組的聚類中心為mi,而mj為小組中的數據,d(mi,mj)為Ci與Cj之間的距離,基于以上兩個距離,得到一個有效的評價函數V(k):
(13)
由以上公式可知,只有函數的范圍保證在[-1,1]之間,當函數的值趨近于1時,代表網格內數據之間的差異性越小,聚類的效果比較明顯;當函數的值趨近于-1時,代表聚類方法失敗,所以當Vk的值達到最大時,其系數K就為最佳聚類系數。
在上述處理的過程上,采用網格數據聚合計算的方法將有限的空間分割成多個小單元[19],這些獨立的小單元各自形成了一個網格結構,然后數據就會依附在網格上進行聚類,假設一個網格結構中的數據總數上限為γ,那么超過上限的網格單元就是一個密集單元[20],超過一個以上的密集單元就可以將其定義為最大的網格單元集合。若用t代表一個聚類,將其定義為2b長的0-1串a1,…,a2b-1,其中2b代表密集單元的數量,i為其中的一個數據,當ai=1時,i則處于聚類之內,反之ai=0。文中假設數據的計量單位是“塊”,那么以塊X1,X2,...,Xi的方式達到網格結構,每一塊都可以在本身存在的網格內進行轉換,利用隨機抽樣的方式抽取數據,那么其目的就是完成設定的目標,數據自行聚類,結果為R1,R2,...,Rn,其中R代表每塊數據X1,X2,...,Xi聚類后的結果,n代表數量。
為了保證每個聚類都不丟失其中的主要數據信息,在其進行移動時就可以隨機保存多個密集單元[21],因此所有信息都會被密集單元所攜帶,并將信息繼續傳遞下去。假設在t時刻完成的數據為X1,總數為m,此時將密集單元進行定義:如果從t時刻為初始聚類,計算每一個網格單元μ中的數據密度,那么其密度滿足:
den(u)>γ(t-i+1)m
(14)
式中γ為數據密度上限。單個數據的聚類思想是如以上描述的方式,而整個數據集合的數據流聚類的核心就是先容納所有數據塊X1經過,將其攜帶的數據都有規律的放入相應的網格結構中,然后再計算其中數據的密度,并找出密集單元;然后搜索得到最大的密集集合,在原有的聚類基礎上,重新將數據流去除、新增和組合[22]。而對于重新加入的網格單元μ,將會出現三種情況:如果周圍沒有與之相呼應的單元,那么就要新建一個密集單元,互相結合得到新的聚類;若存在與其相對應的網格單元ω,那么就將μ融合到新的單元ω;若其對應的單元:
ω1,ω2,…,ωk(k>1)
(15)
則可以把ω1,ω2,...,ωk所在的聚類全部結合到一個網格中,而融合后的單元μ就會被取締,這時也會出現三種情況:如果所有聚類中存在空的密集單元,那么該單元就要被取消;如果聚類中的密集單元都是有所關聯的,那么就可以將單元μ去除,其他單元不變;如果聚類中的密集單元均為任何關聯,那么該聚類就要分割,分別放入其他聚類中。在以上條件的約束下,重新將密集單元進行聚類。
基于上述過程,實現城市配電網多級網格數據的聚合。
隱私同態加密原理,即對加密的數據進行處理得到一個輸出,再將這一輸出進行解密,其結果與用同一方法處理未加密的原始數據得到的輸出結果是一樣的。操作人員可以在加密的數據中進行檢索、對比等操作,得到正確的結果,而在整個處理過程中無需對數據進行解密。其重要意義在于,真正從根本上解決云計算等將數據及其操作委托給第三方時的保密問題。
隱私同態加密算法簡要介紹如下:
(1)加密Enc(m):r=2^n,p=2^n^2, 計算c=m+2r+pq;
(2)解密Dec(c):m=(cmodp) mod 2;
(3)密鑰:奇數p,遠遠大于r、m,q遠大于p。
其中,加密操作為Enc,解密操作為Dec,明文為m,mod表示模運算。明文空間是{0,1},密文空間是整數集。p是一個正的奇數,q是一個大的正整數(沒有要求是奇數,它比p要大的多),p和q在密鑰生成階段確定,p看成是密鑰。而r是加密時隨機選擇的一個小的整數(可以為負數)。
通過上述過程對所有數據聚合,為保證數據的安全性,防止城市配電網多級網格數據丟失和篡改,采用隱私同態技術加密聚合后的數據,過程如下所示:
(1)建立融合樹[23],將聚合后的數據發送到離基站節點最近的某個傳感器節點,將距離最近的節點記作n0,構建起以n0為中心的加密樹;
(2)對同態Hash函數參數g發布,g為一個大素數;
(3)為網格內數據分配ID號[24],在有數據查詢請求后,各個傳感器節點對數據檢測,并將隱私數據存儲到內存中;
(4)對數據加密處理,將聚合后的數據進行加密處理,加密算法表示為:
Ci=Enc(mi)=mi+IDi
(16)
式中mi為隱私數據;IDi為第i個數據的ID號;Enc為數據加密參數:
(5)對同態消息驗證碼計算[25],在隱私同態技術中,各個傳感器能夠計算出感知數據的同態消息驗證碼;
(6)將密文信息和聚合數據的消息驗證碼上傳到融合節點中,構建基于隱私同態的數據聚合加密模型,從而實現城市配電網多級網格數據的聚合,其表達式為:
H(mi)=gmi
(17)
為驗證所提出的城市配電網多級網格數據聚合算法的有效性,采用Matlab軟件搭建城市配電網多級網格數據模型仿真平臺并在此平臺下進行實驗分析。實驗數據取自某城市電網公司建立的配電網多級網格數據庫,該數據庫含有2 000個數據,對數據進行分組,數據集的元組數設為10,配電網多級網格數據設置情況如表1所示。

表1 配電網多級網格數據設置情況
根據密度閾值函數設置對配電網多級網格數據進行預處理,并將文獻[1]提出的基于霧計算的聚合方法與文獻[2]提出的基于霧輔助的方法與所研究方法對比,對比三種方法的聚合效果。
圖3為三種方法在數據聚合后,數據丟失的對比結果。

圖3 數據丟失情況對比
基于圖3可知,文中方法在數據量為100條到500條時沒有出現數據丟失情況,在數據量增多到1 000條時出現了數據丟失情況,但是丟失數量在1次內,丟失數量較少,在可接受范圍內。而基于霧計算的聚合方法與霧輔助方法數據丟失情況較多,聚合效果較差。主要是因為文中方法采用隱私同態技術加密聚合后的數據,保證了數據的安全性,最大限度防止了城市配電網多級網格數據丟失,由此可以證明文中方法在數據聚合過程中能夠保證數據的防丟失安全性。
對比經過三種方法聚合后數據被篡改的情況,結果如圖4所示。

圖4 數據篡改情況
由圖4可知,文中方法的數據篡改次數在2次內,出現的被篡改情況較少,而其他兩種方法均發生不同情況的數據篡改情況,主要是因為文中方法采用隱私同態技術加密聚合后的數據,保證了數據的安全性,最大限度防止了城市配電網多級網格數據被篡改。由此可以證明文中方法在數據聚合過程中能夠保證數據的防篡改安全性。
在數據聚合中,僅僅關注數據的完整性和機密性是遠遠不夠的,信息聚合的時效性也非常重要,為此對比三種方法的數據聚合效率,對比結果如圖5所示。由圖5可知,所研究的城市配電網多級網格數據聚合方法聚合效率最高,在數據多與少的情況下,所花費的數據聚合時間都較少。而基于霧計算的聚合方法,以及霧輔助的聚合方法受到數據量影響較大,在數據量較多時,花費的聚合時間較多。而文中在密集單元里選出一個位移最大的初始值作為聚類中心,將噪聲的干擾降到最低,從而提升了算法的運行效率。

圖5 數據聚合效率對比
三種方法的數據加密效率對比結果如圖6所示。由圖6可知,其他兩種方法的數據加密時間較多,文中方法研究的數據加密時間遠遠少于這兩種方法。主要原因是文中方法采用了隱私同態方法對數據加密,隱私同態技術不需要對數據密鑰分配,簡化了加密流程,從而減少了數據加密的時間。

圖6 數據加密效率對比
對比三種方法在傳輸數據時產生的通信開銷,對比結果如圖7所所示。由圖7可知,文中方法通信開銷維持在同一量級,通信開銷較低,且遠低于其他兩種方法的通信開銷,說明所研究的方法不僅能夠減少數據聚合時間,還能夠減少數據通信開銷。主要原因是文中方法將數據的格式轉化成與大多數數據相同的格式,重新獲取新的數據,保證了數據獲取的完整性,降低了數據通信開銷。

圖7 通信開銷對比
文中提出了基于隱私同態的城市配電網多級網格數據聚合算法。(1)預先對數據采樣,保證數據聚合的完整性;(2)提出網格聚類算法,對聚類中心與密度函數選擇,保證數據的準確聚類;(3)將隱私同態技術應用到數據聚合中,在保證數據順利聚合的同時,保證數據的安全性。
實驗算例表明,通過對比已有經典聚合方法,文中所提出的基于隱私同態的城市配電網多級網格數據聚合算法,數據丟失數量限制在1次內,數據篡改次數限制在2次內,減少聚合后數據丟失與被篡改的次數,還能有效提高數據加密效率與聚合效率,并顯著降低數據的通信費用。