張利華 萬源華 付東輝
1(華東交通大學(xué)軟件學(xué)院 江西 南昌 330000)
2(華東交通大學(xué)電氣與自動(dòng)化工程學(xué)院 江西 南昌 330000)
智能電網(wǎng)是一種智能化的新型電網(wǎng),相比傳統(tǒng)電網(wǎng),智能電網(wǎng)具有智能化程度與安全性高、交互性好、環(huán)境友好,以及可以實(shí)現(xiàn)供應(yīng)商與用戶之間的雙向通信等突出優(yōu)點(diǎn)。隨著智能電網(wǎng)和網(wǎng)絡(luò)通信的大力發(fā)展,智能電網(wǎng)實(shí)現(xiàn)了與用戶的雙向通信,但也帶來了諸多安全威脅。為了保證網(wǎng)絡(luò)信息的安全,人們還需要對(duì)智能電網(wǎng)的數(shù)據(jù)安全采取有效的保護(hù)措施。
智能電網(wǎng)的用電數(shù)據(jù)關(guān)系到用戶的隱私和信息的安全,確保用電記錄數(shù)據(jù)的隱私安全既是社會(huì)道德的責(zé)任,也是法律的硬性要求。數(shù)據(jù)匿名技術(shù)能夠保護(hù)用電數(shù)據(jù)的安全,針對(duì)數(shù)據(jù)隱私保護(hù)問題,國內(nèi)外已經(jīng)提出了許多關(guān)于數(shù)據(jù)隱私保護(hù)的技術(shù)。k-匿名技術(shù)[1]是通過創(chuàng)建匿名數(shù)據(jù)集從而使每個(gè)敏感信息和剩下的k-1個(gè)記錄擁有不可區(qū)分性。與k-匿名類似的延伸有t-closeness[2],該技術(shù)是對(duì)敏感信息進(jìn)行重新分布從而實(shí)現(xiàn)隱私保護(hù);同樣還有L-多樣性[3],它對(duì)敏感信息的隱私保護(hù)方法是針對(duì)敏感數(shù)據(jù)使用盡可能多的數(shù)據(jù)集。相關(guān)研究證實(shí)了只需提供少量高維度的數(shù)據(jù)或者數(shù)據(jù)點(diǎn),上述方法實(shí)現(xiàn)的匿名數(shù)據(jù)集就很可能被解匿名。其他的隱私保護(hù)方法還有同態(tài)加密[4],加密敏感隱私數(shù)據(jù)并允許任何計(jì)算運(yùn)行在密文上;差分隱私[5],該技術(shù)是通過增加噪聲來起到保護(hù)隱私的作用。
區(qū)塊鏈技術(shù)是比特幣的底層核心技術(shù)。一個(gè)區(qū)塊鏈系統(tǒng)是由一批分布(在全球)的節(jié)點(diǎn)組成的,其中每個(gè)節(jié)點(diǎn)都是一臺(tái)自主的設(shè)備(計(jì)算機(jī))。系統(tǒng)存在的目的是為了維護(hù)一個(gè)分布式的賬本。該賬本由一個(gè)接一個(gè)的數(shù)據(jù)區(qū)塊(block)通過有序連接組合成一個(gè)鏈條,這個(gè)賬本被稱為區(qū)塊鏈。系統(tǒng)內(nèi)的任何一個(gè)節(jié)點(diǎn)都可以擁有整條區(qū)塊鏈上完整的數(shù)據(jù)。區(qū)塊鏈技術(shù)應(yīng)用非常廣泛,近幾年有研究人員將其應(yīng)用在智能電網(wǎng)中。
針對(duì)智能電網(wǎng)用電數(shù)據(jù)存儲(chǔ)的研究,國內(nèi)外有不少學(xué)者采用不同的技術(shù)來保證其數(shù)據(jù)存儲(chǔ)的安全性。張少敏等[6]針對(duì)智能電網(wǎng)的數(shù)據(jù)安全問題提出了無證書環(huán)簽密方案,采用無證書簽密的方式保護(hù)用戶的用電數(shù)據(jù)安全,但是該方案依然存在過于中心化的問題。傳統(tǒng)的智能電網(wǎng)用電數(shù)據(jù)存儲(chǔ)普遍采用集中化模式,通過創(chuàng)建愈來愈堅(jiān)固的墻來保證數(shù)據(jù)安全,例如采取更復(fù)雜的加密方案,加強(qiáng)多因子認(rèn)證控制等。但是一旦敵手黑進(jìn)了系統(tǒng),系統(tǒng)所有數(shù)據(jù)就會(huì)被泄露出去,存在著單點(diǎn)失敗難題。因此,需要依靠可信第三方機(jī)構(gòu)的誠實(shí)性。Zyskind等[7]提議應(yīng)用區(qū)塊鏈技術(shù)來保護(hù)數(shù)據(jù)存儲(chǔ)和訪問控制管理。該解決方案將加密的數(shù)據(jù)存儲(chǔ)在受信任的第三方托管服務(wù)中,并將事件日志記錄在區(qū)塊鏈上,但仍存在數(shù)據(jù)泄漏的風(fēng)險(xiǎn),并且未實(shí)現(xiàn)去中心化。Azaria等[8]提出基于區(qū)塊鏈的數(shù)據(jù)共享系統(tǒng),通過分布式記錄管理系統(tǒng)處理相關(guān)數(shù)據(jù),提供給礦工匯總的權(quán)限并向簿記員獎(jiǎng)勵(lì)數(shù)據(jù),然而數(shù)據(jù)使用效率不高。吳振銓等[9]針對(duì)智能電網(wǎng)的用電數(shù)據(jù)安全和共享問題做出深入研究,方案采用了區(qū)塊鏈技術(shù),但隨著數(shù)據(jù)的不斷增長(zhǎng),區(qū)塊鏈的存儲(chǔ)容量將受到限制。
云存儲(chǔ)的主要顯著特點(diǎn)是集成度很高、快速、應(yīng)用范圍廣泛,在云存儲(chǔ)的應(yīng)用過程中,最重要的一個(gè)環(huán)節(jié)就是對(duì)大數(shù)據(jù)的存儲(chǔ),與傳統(tǒng)數(shù)據(jù)存儲(chǔ)系統(tǒng)相比,云存儲(chǔ)的數(shù)據(jù)存儲(chǔ)更加復(fù)雜多變,相較于文獻(xiàn)[9]數(shù)據(jù)存儲(chǔ)系統(tǒng)成本會(huì)大范圍減少。本文結(jié)合區(qū)塊鏈技術(shù)和云存儲(chǔ)技術(shù),提出一種基于區(qū)塊鏈的用電數(shù)據(jù)存儲(chǔ)方案。通過實(shí)用拜占庭協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)的共識(shí),訪問控制機(jī)制可實(shí)現(xiàn)用電數(shù)據(jù)信息的共享,使用區(qū)塊鏈存儲(chǔ)有關(guān)用電量數(shù)據(jù)的公共信息,其真實(shí)數(shù)據(jù)被加密并存儲(chǔ)在數(shù)據(jù)庫或云中,方便有效地實(shí)現(xiàn)了敏感電力數(shù)據(jù)的存儲(chǔ)和信息的共享,大大減少了系統(tǒng)的計(jì)算開銷。
本文提出一個(gè)基于區(qū)塊鏈的用電數(shù)據(jù)存儲(chǔ)方案(PDSB)。PDSB方案利用區(qū)塊鏈的加密算法、點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)傳輸技術(shù)、共識(shí)機(jī)制等網(wǎng)絡(luò)技術(shù)來保證用電數(shù)據(jù)的安全存儲(chǔ)和共享。用電數(shù)據(jù)存儲(chǔ)鏈(EDSC)結(jié)合區(qū)塊鏈和鏈下云存儲(chǔ)兩種技術(shù)來實(shí)現(xiàn)用電數(shù)據(jù)的安全存儲(chǔ)和共享,其體系結(jié)構(gòu)如圖1所示。
圖1 EDSC鏈體系結(jié)構(gòu)
EDSC鏈體系結(jié)構(gòu)主要由發(fā)電方、用戶、電網(wǎng)和云服務(wù)提供商構(gòu)成,電網(wǎng)負(fù)責(zé)給用戶提供相關(guān)ID、賬戶編號(hào),電網(wǎng)或其他機(jī)構(gòu)可以有償使用用電數(shù)據(jù)。EDSC鏈接收兩種不同類型的交易,即數(shù)據(jù)存儲(chǔ)和訪問控制,并且用戶匿名參與交易。由于區(qū)塊鏈上的數(shù)據(jù)信息公開,所以區(qū)塊鏈上公共賬本上不會(huì)出現(xiàn)敏感的用電數(shù)據(jù)信息??紤]到區(qū)塊鏈上的存儲(chǔ)容量容易受到限制[10],PDSB方案創(chuàng)新性地將用電數(shù)據(jù)的重要隱私數(shù)據(jù)信息保存在鏈下的云存儲(chǔ)中,區(qū)塊鏈在EDSC鏈體系中起到對(duì)云存儲(chǔ)重要數(shù)據(jù)的引用作用。
在PDSB方案中,云存儲(chǔ)通過網(wǎng)絡(luò)計(jì)算、集群文件系統(tǒng)和分層存儲(chǔ)等現(xiàn)有技術(shù),借助硬件/軟件將網(wǎng)絡(luò)中的大量存儲(chǔ)設(shè)備集成在一起,并為調(diào)用和存儲(chǔ)數(shù)據(jù)提供標(biāo)準(zhǔn)的存儲(chǔ)接口。與傳統(tǒng)存儲(chǔ)方法相比,云存儲(chǔ)的出現(xiàn)使得人們可以以更低的成本享受幾乎無限的存儲(chǔ)空間,而不是購買昂貴的存儲(chǔ)設(shè)備。圖2為云存儲(chǔ)系統(tǒng)架構(gòu)圖。
圖2 云存儲(chǔ)系統(tǒng)架構(gòu)
在云存儲(chǔ)系統(tǒng)中,包括四個(gè)部分,分別是訪問層、接口層、管理層和存儲(chǔ)層。首先,訪問層加密用戶數(shù)據(jù)信息,通過API接口將其傳送到服務(wù)管理器;服務(wù)管理器(即基礎(chǔ)管理層)對(duì)數(shù)據(jù)信息進(jìn)行一系列加工,將其保存在存儲(chǔ)層;存儲(chǔ)層負(fù)責(zé)壓縮和刪除冗余文件來節(jié)約系統(tǒng)成本,從而提高存儲(chǔ)空間使用率。
PDSB方案中按照區(qū)塊鏈的分層結(jié)構(gòu)(如圖3)給出用戶用EDSC鏈各層的設(shè)計(jì),分層結(jié)構(gòu)由數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、應(yīng)用層組成。
圖3 EDSC鏈的分層結(jié)構(gòu)
在PDSB方案中各個(gè)加入其中的交易商可以作為網(wǎng)絡(luò)節(jié)點(diǎn),他們負(fù)責(zé)向全網(wǎng)讀取用戶的用電數(shù)據(jù)信息,同時(shí)共同維護(hù)著全網(wǎng)的數(shù)據(jù)庫,EDSC鏈的數(shù)據(jù)塊結(jié)構(gòu)如圖4所示。管理節(jié)點(diǎn)和普通節(jié)點(diǎn)均為計(jì)算節(jié)點(diǎn),在基于區(qū)塊鏈的用電數(shù)據(jù)存儲(chǔ)系統(tǒng)中,會(huì)將用電數(shù)據(jù)信息進(jìn)行運(yùn)算加工產(chǎn)生一種數(shù)據(jù)結(jié)構(gòu),用電數(shù)據(jù)區(qū)塊分別包含了4個(gè)內(nèi)容:區(qū)塊ID,證據(jù)區(qū)塊頭部信息,用電數(shù)據(jù)詳情,區(qū)塊保全用電數(shù)據(jù)總數(shù)。
圖4 EDSC鏈的數(shù)據(jù)塊結(jié)構(gòu)
將用電數(shù)據(jù)的信息摘要和用電數(shù)據(jù)在云存儲(chǔ)中的具體位置信息存儲(chǔ)在EDSC鏈的數(shù)據(jù)層中,并將各個(gè)區(qū)塊按照時(shí)間順序連接成一條區(qū)塊鏈。創(chuàng)世區(qū)塊由用電數(shù)據(jù)存儲(chǔ)系統(tǒng)產(chǎn)生,新產(chǎn)生的區(qū)塊經(jīng)過全網(wǎng)節(jié)點(diǎn)的驗(yàn)證后被加入到區(qū)塊鏈中,一旦數(shù)據(jù)加入到區(qū)塊鏈上,系統(tǒng)將永久保存。
在EDSC鏈中每個(gè)區(qū)塊中加入時(shí)間戳來保證區(qū)塊按照時(shí)序進(jìn)行連接,用電數(shù)據(jù)信息經(jīng)過哈希函數(shù)的運(yùn)算可以使其不被篡改,然后采用公鑰加密方式驗(yàn)證身份認(rèn)證,所有技術(shù)進(jìn)行整合確保了EDSC鏈的安全。EDSC鏈的交易結(jié)構(gòu)如圖5所示。
圖5 EDSC鏈的交易數(shù)據(jù)結(jié)構(gòu)
在EDSC鏈交易過程中,交易類型字段決定交易類型并由其標(biāo)識(shí),指示節(jié)點(diǎn)采用不同的規(guī)則來驗(yàn)證交易是否有效。在用電數(shù)據(jù)存儲(chǔ)交易中,用戶重要的敏感用電數(shù)據(jù)存儲(chǔ)在區(qū)塊鏈下的云存儲(chǔ)中,全部以密文形式存儲(chǔ),而區(qū)塊鏈只存儲(chǔ)用戶公開可用的數(shù)據(jù)及其資源的簡(jiǎn)要總結(jié),用戶相關(guān)數(shù)據(jù)信息的引用和原始數(shù)據(jù)的哈希值存儲(chǔ)在區(qū)塊鏈。在用電數(shù)據(jù)存儲(chǔ)交易中,數(shù)據(jù)生產(chǎn)者將元數(shù)據(jù)data、用電記錄值M和數(shù)據(jù)簽名一起寫入?yún)^(qū)塊鏈{M;data;Sig(M;data)}。訪問控制交易時(shí),用電數(shù)據(jù)擁有者將主體對(duì)資源的權(quán)限寫入?yún)^(qū)塊鏈中,URI為資源,而pko為主體用數(shù)據(jù)使用者的公鑰,用訪問對(duì)象公鑰pko對(duì)用電數(shù)據(jù)解密密鑰k進(jìn)行加密。隨后加上有效期和簽名,如:{URI;permission;pko;expiration;Sig(URI;permission;pko);Epko(k)},其中:expiration為時(shí)間戳;Epko(k)為pko對(duì)k加密。當(dāng)撤銷其所有權(quán)限時(shí),表明被授予的權(quán)限permission為空集。區(qū)塊鏈掌握著鏈下用電數(shù)據(jù)云存儲(chǔ)的管理權(quán)限,控制著用戶的訪問權(quán)限。
EDSC鏈網(wǎng)絡(luò)層是一個(gè)實(shí)現(xiàn)網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)之間相互通信的P2P網(wǎng)絡(luò)。網(wǎng)絡(luò)中的任何一個(gè)節(jié)點(diǎn)均為平等的,各個(gè)節(jié)點(diǎn)都能夠產(chǎn)生新的信息同時(shí)也能夠接收相關(guān)信息,各個(gè)節(jié)點(diǎn)共同維護(hù)一個(gè)公共賬本來達(dá)到通信的一致性。
在PDSB方案中,網(wǎng)絡(luò)中的任何一個(gè)節(jié)點(diǎn)都能產(chǎn)生一個(gè)新區(qū)塊,然后節(jié)點(diǎn)將產(chǎn)生區(qū)塊的信息向全網(wǎng)進(jìn)行廣播,其他節(jié)點(diǎn)收到相關(guān)信息后將對(duì)其進(jìn)行驗(yàn)證,如果驗(yàn)證通過則繼續(xù)轉(zhuǎn)發(fā)。網(wǎng)絡(luò)節(jié)點(diǎn)通過共識(shí)機(jī)制驗(yàn)證相關(guān)信息,一旦新區(qū)塊被大部分節(jié)點(diǎn)認(rèn)可后,新產(chǎn)生的區(qū)塊將加入到這條區(qū)塊鏈上。普通節(jié)點(diǎn)的產(chǎn)生通過管理節(jié)點(diǎn)對(duì)新加入節(jié)點(diǎn)的驗(yàn)證,圖6為節(jié)點(diǎn)認(rèn)證協(xié)議流程。
PDSB方案中電網(wǎng)控制中心為管理節(jié)點(diǎn),新節(jié)點(diǎn)可以是科研機(jī)構(gòu)或云服務(wù)提供商或其他合法機(jī)構(gòu),普通節(jié)點(diǎn)是經(jīng)過管理節(jié)點(diǎn)驗(yàn)證通過后的有效節(jié)點(diǎn)。網(wǎng)絡(luò)中如果有新節(jié)點(diǎn)申請(qǐng)加入網(wǎng)絡(luò),需要通過管理節(jié)點(diǎn)的驗(yàn)證,驗(yàn)證通過后將新節(jié)點(diǎn)的信息廣播到其他節(jié)點(diǎn)上,其他節(jié)點(diǎn)收到新節(jié)點(diǎn)信息后將其存儲(chǔ)起來,通過共識(shí)驗(yàn)證后決定新節(jié)點(diǎn)是否可以加入網(wǎng)絡(luò),加入網(wǎng)絡(luò)后的新節(jié)點(diǎn)保全網(wǎng)絡(luò)信息。
共識(shí)層是區(qū)塊鏈的核心技術(shù),包括共識(shí)機(jī)制和共識(shí)算法。共識(shí)層可以使區(qū)塊鏈網(wǎng)絡(luò)中的分布式節(jié)點(diǎn)達(dá)到共識(shí)。EDSC鏈采用實(shí)用拜占庭容錯(cuò)(Practical Byzantine Fault Tolerance,PBFT)機(jī)制[11]來保證分布式賬本的一致性。
在智能電網(wǎng)EDSC鏈系統(tǒng)中,包含智能電網(wǎng)傳感器感知節(jié)點(diǎn)(Sensor Node,SN)和數(shù)據(jù)采集基站(DS)。智能電網(wǎng)EDSC鏈可以采用實(shí)用拜占庭(PBFT)算法共識(shí)機(jī)制進(jìn)行區(qū)塊共識(shí)。PBFT算法適用于異步拜占庭容錯(cuò),主要結(jié)論是n≥3f+1,其中:n表示系統(tǒng)中參與共識(shí)的總節(jié)點(diǎn)數(shù);f表示系統(tǒng)在共識(shí)過程中所允許出現(xiàn)的故障節(jié)點(diǎn)數(shù)。
在共識(shí)節(jié)點(diǎn)總數(shù)為n的系統(tǒng)中,如果故障節(jié)點(diǎn)不多于f個(gè),則認(rèn)為共識(shí)結(jié)果是可接受的。具體共識(shí)過程如圖7所示,其中:DSi(i=0,1,2,…,n)表示采集基站;SNi表示采集基站DSi管理范圍內(nèi)的傳感器感知節(jié)點(diǎn)。SNi將采集的監(jiān)測(cè)數(shù)據(jù)發(fā)送給DSi,DSi將用電數(shù)據(jù)處理后在DS之間競(jìng)爭(zhēng)寫入數(shù)據(jù)區(qū)塊的權(quán)限,假設(shè)在本輪共識(shí)中DS0獲得了寫入權(quán)限,那么DS0就成為本輪共識(shí)的唯一主節(jié)點(diǎn),主節(jié)點(diǎn)DS0負(fù)責(zé)將新數(shù)據(jù)區(qū)塊寫入當(dāng)前區(qū)塊鏈。
圖7 拜占庭算法
EDSC鏈預(yù)選節(jié)點(diǎn)共識(shí)過程描述如下:
(1) 主節(jié)點(diǎn)廣播區(qū)塊階段,主節(jié)點(diǎn)DS0將數(shù)據(jù)區(qū)塊、新數(shù)據(jù)區(qū)塊的哈希值和其數(shù)字簽名廣播至其從節(jié)點(diǎn)以備查驗(yàn)。
(2) 從節(jié)點(diǎn)驗(yàn)證區(qū)塊階段,每個(gè)從節(jié)點(diǎn)對(duì)主節(jié)點(diǎn)發(fā)來的數(shù)據(jù)區(qū)塊和數(shù)字簽名進(jìn)行驗(yàn)證,根據(jù)排序模擬執(zhí)行這些交易數(shù)據(jù)并向全網(wǎng)廣播。
(3) 從節(jié)點(diǎn)比較與確認(rèn)階段,各節(jié)點(diǎn)匯總整理其他節(jié)點(diǎn)發(fā)來的交易結(jié)果和哈希摘要。
(4) 主節(jié)點(diǎn)反饋階段,主節(jié)點(diǎn)整理所有從節(jié)點(diǎn)發(fā)送的消息。如果收到2f+1條commit消息,即可提交新區(qū)塊和各從節(jié)點(diǎn)的審計(jì)結(jié)果到本地的區(qū)塊鏈和狀態(tài)數(shù)據(jù)庫[12]。同時(shí),將得到驗(yàn)證的新數(shù)據(jù)區(qū)塊附上主節(jié)點(diǎn)的數(shù)字簽名廣播至從節(jié)點(diǎn)。自此,該數(shù)據(jù)區(qū)塊將以時(shí)間先后的順序存儲(chǔ)到EDSC鏈中。
假如主節(jié)點(diǎn)在匯總過程中發(fā)現(xiàn)有至少f+1個(gè)從節(jié)點(diǎn)不接受主節(jié)點(diǎn)發(fā)送的數(shù)據(jù)區(qū)塊和哈希摘要,主節(jié)點(diǎn)將分析和校驗(yàn)所有從節(jié)點(diǎn)的審計(jì)結(jié)果,主節(jié)點(diǎn)可重新發(fā)送數(shù)據(jù)區(qū)塊給所有的從節(jié)點(diǎn)進(jìn)行再一次校驗(yàn)。如果接受主節(jié)點(diǎn)審計(jì)結(jié)果的從節(jié)點(diǎn)數(shù)量仍大于等于f+1,系統(tǒng)可重新選擇主節(jié)點(diǎn),再次進(jìn)行共識(shí)計(jì)算,直至滿足生產(chǎn)數(shù)據(jù)區(qū)塊的要求。
在EDSC鏈中,分別有用電數(shù)據(jù)的發(fā)布、用電數(shù)據(jù)的存儲(chǔ)、用電數(shù)據(jù)的共享。
2.4.1用電數(shù)據(jù)發(fā)布
用戶在電網(wǎng)控制中心注冊(cè)身份時(shí),控制中心會(huì)為該用戶產(chǎn)生相應(yīng)的ID、賬戶編號(hào)等用戶數(shù)據(jù)(M)。當(dāng)產(chǎn)生用電數(shù)據(jù)時(shí),隨即控制中心將為相關(guān)用電數(shù)據(jù)生成哈希,然后將用電數(shù)據(jù)的哈希、用電數(shù)據(jù)的摘要(Digest)通過發(fā)行方的私鑰(Sk)進(jìn)行簽名,最后將其發(fā)布在EDSC鏈上。通過對(duì)稱密鑰(k)的方式對(duì)用電數(shù)據(jù)進(jìn)行加密[13],采用用戶的公鑰(Pk)對(duì)加密密鑰進(jìn)行加密,然后將其一并發(fā)送給用戶,詳細(xì)過程如算法1所示。
算法1用電數(shù)據(jù)發(fā)布
輸入:M。
輸出:用電數(shù)據(jù)交易。
Begin
生成一個(gè)用電數(shù)據(jù)M;
產(chǎn)生一個(gè)需保存在EDSC鏈上的數(shù)據(jù){Digest;H(M);Sig(Digest|H(M))}將其廣播至網(wǎng)絡(luò);
使用對(duì)稱密鑰對(duì)初始用電數(shù)據(jù)信息與哈希值簽名后的值進(jìn)行加密處理,使用用戶的公鑰進(jìn)行加密得到信息{Enck(Digest|M|H(M)|Sig(Digest|M|H(M)));Enc(k)}后一并發(fā)給用戶;
end
2.4.2用電數(shù)據(jù)存儲(chǔ)
電網(wǎng)控制中心將用電數(shù)據(jù)發(fā)送給用戶,用戶驗(yàn)證數(shù)據(jù)簽名并用私鑰解密用電數(shù)據(jù)的加密密鑰,同時(shí)真實(shí)用電數(shù)據(jù)和簽名也被解密出來,最后把用電數(shù)據(jù)和簽名用新生成的加密密鑰進(jìn)行加密并將其存放在鏈下云存儲(chǔ)中保存起來,具體過程如算法2所示。
算法2用電數(shù)據(jù)存儲(chǔ)
輸入:加密后的用電數(shù)據(jù){Enck(Digest|M|H(M)|Sig(Digest|M|H(M)));Enc(k)}。
輸出:用電數(shù)據(jù)存儲(chǔ)的位置。
Begin
用戶用私鑰解密Enc(k)得到對(duì)稱密鑰k;
利用k解密Digest、M、H(M)、Sig(Digest|M|H(M));
利用公鑰驗(yàn)證簽名是否正確;
if True
通過M計(jì)算得到其哈希值將其與H(M)作比較;
if 哈希值一致
用電數(shù)據(jù)真實(shí);
else
將其丟棄;
end
else
將其丟棄;
if 數(shù)據(jù)正確
加密用電數(shù)據(jù)及其簽名并存儲(chǔ)在云存儲(chǔ)中,標(biāo)記存儲(chǔ)位置;
end
end
2.4.3用電數(shù)據(jù)共享
通過授權(quán)后的用電數(shù)據(jù)會(huì)把共享數(shù)據(jù)的使用權(quán)限和使用期限以及在云存儲(chǔ)的位置信息的解密密鑰一并寫入?yún)^(qū)塊鏈中,然后云存儲(chǔ)管理端會(huì)根據(jù)此信息來設(shè)置訪問控制[14]方案,詳細(xì)過程如算法3所示。
算法3用電數(shù)據(jù)共享
輸入:請(qǐng)求用戶的公鑰及其用電數(shù)據(jù)。
輸出:生成訪問控制交易。
Begin
定位用電數(shù)據(jù)在云存儲(chǔ)中的位置URI及其對(duì)應(yīng)的加密密鑰k;
產(chǎn)生的訪問控制交易中對(duì)應(yīng)信息寫入該交易
{URI;perm;pko;expiration;Sig(URI;perm;pko);Epko(k)}
向用戶用電數(shù)據(jù)存儲(chǔ)鏈網(wǎng)絡(luò)廣播該交易;
end
在隨機(jī)預(yù)言模型下,利用該方案中的PBFT共識(shí)算法證明PDSB方案的正確性。
定理1隨機(jī)預(yù)言模型下,假設(shè)存在若干個(gè)節(jié)點(diǎn)可以進(jìn)行欺騙和共謀,對(duì)數(shù)據(jù)可以進(jìn)行篡改,那么本文方案中的共識(shí)算法可以有效地解決該難題。
證明在區(qū)塊鏈計(jì)算過程中為了阻斷節(jié)點(diǎn)的共謀和欺騙,加入了管理節(jié)點(diǎn)和節(jié)點(diǎn)認(rèn)證機(jī)制[15]。采用節(jié)點(diǎn)認(rèn)證機(jī)制,使得管理節(jié)點(diǎn)向網(wǎng)絡(luò)廣播注冊(cè)的新節(jié)點(diǎn)的認(rèn)證信息。為了防止惡意節(jié)點(diǎn)共謀,因此管理節(jié)點(diǎn)需要通過分區(qū)計(jì)算節(jié)點(diǎn)選舉,可以將不作為的管理節(jié)點(diǎn)重新選舉被其他合格的節(jié)點(diǎn)所替換[16]。這樣,可以保證每個(gè)參與節(jié)點(diǎn)的可信度和數(shù)量,保證共識(shí)節(jié)點(diǎn)的臨界值的作用。在一個(gè)由n個(gè)節(jié)點(diǎn)組成的共識(shí)網(wǎng)絡(luò)中,提供擁有的f=(n-1)/3容錯(cuò)率,該算法有很好的可用性和很強(qiáng)的安全性,并且對(duì)任何網(wǎng)絡(luò)環(huán)境均適用。由于發(fā)送者的簽名包含在節(jié)點(diǎn)所請(qǐng)求的信息中,惡意節(jié)點(diǎn)將不能偽造該請(qǐng)求,并且惡意節(jié)點(diǎn)只能試圖將系統(tǒng)的狀態(tài)倒退到過去,導(dǎo)致系統(tǒng)內(nèi)部的分叉,從而使得在區(qū)塊鏈的某一高度處有兩條鏈成為可能。假設(shè)在共識(shí)網(wǎng)絡(luò)中,共識(shí)節(jié)點(diǎn)分為三個(gè)部分,如R1、R2、F,即R=R1∪R2∪F,且R1∩R2=?,R1∩F=?。R1、R2都是一組誠實(shí)的共識(shí)節(jié)點(diǎn),只有集合中的節(jié)點(diǎn)可以相互通信。假設(shè)這組惡意節(jié)點(diǎn)是F,F(xiàn)的節(jié)點(diǎn)可以與整個(gè)網(wǎng)絡(luò)中的任何節(jié)點(diǎn)通信。如果F希望系統(tǒng)出現(xiàn)分叉,那么需要在與R1達(dá)成共識(shí)并同時(shí)釋放該塊之后,在不聯(lián)系R2的情況下達(dá)成第二個(gè)共識(shí),然后撤銷R1與該區(qū)塊的共識(shí)。滿足上述的條件,需要:|R1|+|F|≥n-f,且|R2|+|F|≥n-f。當(dāng)在情況最壞時(shí),有|F|=f,此時(shí)惡意節(jié)點(diǎn)的個(gè)數(shù)上升為系統(tǒng)中所能承受的最大值,上述關(guān)系即列為|R1|≥n-2f,|R2|+|F|≥n-2f。兩式相加可得|R1|+|R2|≥2n-4f,化簡(jiǎn)可得n≤3f。由已知f=(n-1)/3可得n≤n-1,假設(shè)不成立,因此得證系統(tǒng)在容錯(cuò)范圍內(nèi)無法被“分叉”,同時(shí),證明了該系統(tǒng)保證網(wǎng)絡(luò)中的任何節(jié)點(diǎn)能夠共同維護(hù)唯一被認(rèn)可的EDSC鏈,從而起到了防篡改的作用。
建立一個(gè)由10臺(tái)運(yùn)行Linux操作系統(tǒng)的計(jì)算機(jī)仿真平臺(tái),每臺(tái)計(jì)算機(jī)參數(shù)如下:8 GB內(nèi)存,i5- 4590 CPU和HD Graphics 4600顯卡,Linux系統(tǒng)版本是Ubuntu 16.04。將每臺(tái)計(jì)算機(jī)分別看作一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行測(cè)試。在Anaconda環(huán)境中利用Jupter Notebook軟件進(jìn)行仿真實(shí)驗(yàn)。Jupter Notebook軟件的操作界面如圖8所示。
圖8 Jupter Notebook操作界面
在聯(lián)盟鏈網(wǎng)絡(luò)中選取10個(gè)節(jié)點(diǎn),對(duì)不同數(shù)量的節(jié)點(diǎn)分別測(cè)試,對(duì)比計(jì)算機(jī)CPU耗能,比較各個(gè)方案的性能。
PDSB方案將用戶少量的重要數(shù)據(jù)提取存儲(chǔ)在各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)中,其他的數(shù)據(jù)假設(shè)存在云存儲(chǔ)中(由于設(shè)備有限,所以該方案的大批量的用電數(shù)據(jù)作暫時(shí)刪除處理,刪除數(shù)據(jù)假設(shè)存放在云存儲(chǔ)中),文獻(xiàn)[9]保存完整用電數(shù)據(jù)存儲(chǔ)在各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上。PDSB方案和文獻(xiàn)[9]方案的理論測(cè)試對(duì)比如圖9所示。
圖9 CPU能耗對(duì)比
隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量的增加,文獻(xiàn)[9]的節(jié)點(diǎn)計(jì)算開銷逐步增加,本文方案相較于文獻(xiàn)[9]網(wǎng)絡(luò)節(jié)點(diǎn)的計(jì)算開銷大幅降低。在聯(lián)盟鏈環(huán)境中,選擇若干個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行性能測(cè)試。實(shí)驗(yàn)結(jié)果表明,PDSB方案在計(jì)算開銷上有較好的改善。
同時(shí)PDSB方案采用文獻(xiàn)[17]中的攻擊模型來分析區(qū)塊鏈潛在的被攻擊風(fēng)險(xiǎn),圖10為惡意節(jié)點(diǎn)攻擊成功率。
圖10 惡意節(jié)點(diǎn)攻擊成功率
假設(shè)w為網(wǎng)絡(luò)惡意節(jié)點(diǎn)偽造區(qū)塊鏈的概率,α、β為整數(shù),r是誠實(shí)節(jié)點(diǎn)產(chǎn)生區(qū)塊鏈的概率,wn是惡意節(jié)點(diǎn)控制全網(wǎng)n個(gè)節(jié)點(diǎn)的概率。則wn的計(jì)算如式(1)所示。
(1)
正常節(jié)點(diǎn)與惡意節(jié)點(diǎn)區(qū)塊數(shù)量差距的規(guī)律滿足泊松分布概率密度,即期望值:
(2)
攻擊者節(jié)點(diǎn)攻擊成功的概率P為:
(3)
設(shè)定w的值為0.2、0.4和0.6進(jìn)行測(cè)試,如圖10所示,隨著正常節(jié)點(diǎn)與偽造節(jié)點(diǎn)的數(shù)量增長(zhǎng),惡意節(jié)點(diǎn)攻擊成功的概率P急劇下降。誠實(shí)節(jié)點(diǎn)和惡意節(jié)點(diǎn)數(shù)之差超過10個(gè),由此可以得出惡意節(jié)點(diǎn)攻擊的概率幾乎為零。
本文方案是一個(gè)新近提出的基于區(qū)塊鏈的用電數(shù)據(jù)云存儲(chǔ)方案,該方案采用PBFT共識(shí)機(jī)制達(dá)成網(wǎng)絡(luò)節(jié)點(diǎn)的共識(shí)。
現(xiàn)有智能電網(wǎng)用電數(shù)據(jù)的保護(hù)都是基于密碼學(xué)的安全性設(shè)計(jì)的,無論是基于大數(shù)據(jù)還是基于云平臺(tái),都不可避免地會(huì)遭受數(shù)據(jù)被惡意篡改等安全問題。EDSC鏈基于區(qū)塊鏈本身的數(shù)據(jù)結(jié)構(gòu)特點(diǎn)輔以密碼學(xué)技術(shù)對(duì)智能電網(wǎng)用電數(shù)據(jù)展開設(shè)計(jì),下面從機(jī)密性、完整性、防篡改、不依賴可信第三方(已修改、區(qū)塊鏈特性)、計(jì)算開銷等方面性能進(jìn)行對(duì)比,如表1所示。
表1 方案比較
從特性對(duì)比可以看出,本文提出的PDSB方案具有一定的優(yōu)勢(shì)。
比特幣雖然很快被人們所淡忘,但是它背后的區(qū)塊鏈技術(shù)卻受到各國科研機(jī)構(gòu)的關(guān)注,從一個(gè)不成熟的技術(shù)到現(xiàn)在的逐漸成熟。本文巧妙地結(jié)合了區(qū)塊鏈技術(shù)和云存儲(chǔ)技術(shù),提出一個(gè)基于區(qū)塊鏈的用電數(shù)據(jù)云存儲(chǔ)方案。該方案可以有效地保護(hù)用電數(shù)據(jù)的安全性,其不依賴可信第三方、無可信中心的設(shè)計(jì)也使得該方案具有很強(qiáng)的靈活性,同時(shí)大大降低了節(jié)點(diǎn)之間的計(jì)算開銷。該方案還有很多不足的地方,如在現(xiàn)有的智能電網(wǎng)中的具體實(shí)施可能會(huì)遇到一些問題和挑戰(zhàn)。本文對(duì)區(qū)塊鏈技術(shù)在用電數(shù)據(jù)的安全存儲(chǔ)這一應(yīng)用展開了探索,希望可以對(duì)后續(xù)的相關(guān)研究提供一些啟發(fā)和思路。