劉 超,王 宇,曹永嬌,馬 凱,姜姝宇
(國網(wǎng)吉林省電力有限公司信息通信公司,長春 130000)
能源互聯(lián)網(wǎng)下的電力區(qū)塊鏈主要負(fù)責(zé)承載用戶用電行為信息,為各用電終端提供穩(wěn)定電力供應(yīng)等功能。介于不法分子可通過攻擊電力區(qū)塊鏈來獲得用電終端信息,造成用電終端隱私信息泄露問題,同時為進(jìn)一步增加能源互聯(lián)網(wǎng)下區(qū)塊鏈結(jié)構(gòu)的抗風(fēng)險能力,本文將以格密碼加密方式為基礎(chǔ),構(gòu)建區(qū)塊鏈隱私保護(hù)模型,以此降低用戶用電信息失竊概率,提高信息加密與解密的效率。
在能源互聯(lián)網(wǎng)下的電力區(qū)塊鏈中,區(qū)塊鏈的設(shè)計主要為保存電網(wǎng)終端的實時電量數(shù)據(jù),其中包括電表讀數(shù)、賬戶地址及時間等信息。在該結(jié)構(gòu)中電力區(qū)塊鏈主要由用戶終端、第三方機(jī)構(gòu)、智能電表、控制中心及金融機(jī)構(gòu)等組成,各類型主要負(fù)責(zé)的功能如下:用戶終端主要負(fù)責(zé)查看賬戶余額,同時對賬戶進(jìn)行充值操作;第三方機(jī)構(gòu)主要負(fù)責(zé)對電量數(shù)據(jù)的加密、解密和對用戶身份的認(rèn)證,同時在命令請求中生成同態(tài)加密公私鑰對,從而在執(zhí)行命令的同時保存命令用戶的真實身份信息;智能電表處于用電終端側(cè),主要負(fù)責(zé)將用戶的實時用電數(shù)據(jù)信息進(jìn)行加密,然后將其通過網(wǎng)關(guān)發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)中進(jìn)行存儲,此過程中驗證節(jié)點會將上傳用戶實時用電數(shù)據(jù)進(jìn)行驗證,且在驗證通過后將其上傳至新的區(qū)塊中進(jìn)行存儲;控制中心主要承擔(dān)管理與保存用戶各項信息等功能,日常調(diào)用智能合約實現(xiàn)對日用電量與電費的計算,同時完成對單個用戶用電電費的結(jié)算與價值轉(zhuǎn)移,并對已經(jīng)欠費的電表用戶進(jìn)行監(jiān)控[1]。
能源互聯(lián)網(wǎng)下電力區(qū)塊鏈的設(shè)計可分為5層結(jié)構(gòu),即應(yīng)用層、智能合約層、共識層、數(shù)據(jù)層和網(wǎng)絡(luò)層。
圖1設(shè)計電力區(qū)塊鏈架構(gòu)的網(wǎng)絡(luò)層主要使用P2P協(xié)議,承擔(dān)對交易數(shù)據(jù)與區(qū)塊數(shù)據(jù)的傳輸,其中交易數(shù)據(jù)主要涵蓋用戶終端的賬戶轉(zhuǎn)賬記錄及用電數(shù)據(jù)。區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點時刻監(jiān)聽網(wǎng)絡(luò)中廣播的數(shù)據(jù),當(dāng)節(jié)點接收到鄰居節(jié)點發(fā)送的新交易或新區(qū)塊時,首先要驗證交易和區(qū)塊的有效性,驗證通過后才能將新交易加入新的區(qū)塊后轉(zhuǎn)發(fā)或?qū)⑿碌膮^(qū)塊加入?yún)^(qū)塊鏈后轉(zhuǎn)發(fā),從而有效防止無效數(shù)據(jù)的傳播。數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)的存儲。用戶實時用電數(shù)據(jù)包括電表賬戶、時間、電表讀數(shù)及電表賬戶簽名,轉(zhuǎn)賬記錄包括輸入用戶賬戶地址、輸出用戶賬戶或電表賬戶地址、轉(zhuǎn)賬金額及輸出賬戶簽名。區(qū)塊鏈每次加入新的區(qū)塊時,都需要執(zhí)行共識算法,使得所有區(qū)塊鏈網(wǎng)絡(luò)節(jié)點達(dá)成共識[2]。智能合約層主要實現(xiàn)電費結(jié)算和轉(zhuǎn)賬功能。智能合約是部署在區(qū)塊鏈上的由算法和程序編寫的可以按預(yù)定規(guī)則自動執(zhí)行的數(shù)字化合同。智能合約編寫完成后部署在區(qū)塊鏈網(wǎng)絡(luò)各個節(jié)點中,由外部程序調(diào)用,運行在沙箱環(huán)境中,依照合約內(nèi)容訪問區(qū)塊鏈內(nèi)部數(shù)據(jù),或者向區(qū)塊鏈外部通知區(qū)塊鏈內(nèi)部事件。當(dāng)合約需要向區(qū)塊鏈寫入數(shù)據(jù)時,需要執(zhí)行共識算法。應(yīng)用層主要實現(xiàn)用戶與區(qū)塊鏈的交互及區(qū)塊鏈數(shù)據(jù)可視化,實現(xiàn)用戶賬戶余額查詢、電費充值等功能[3]。
圖1 電力區(qū)塊鏈架構(gòu)圖
2.1.1 初始化
若設(shè)n為系統(tǒng)自身的安全系數(shù),奇素數(shù)為q,且q=poly(n),存在整數(shù)m,且m=O(n log q),素數(shù)為p,且p>n3ε+1·log5n,同時p<q<p3,存在高斯噪聲分布為(q),參數(shù)為β,且β=poly(n)。
2.1.2 密鑰生成
2.1.3 加密過程
用b表示明文數(shù)據(jù)編碼向量,且b=(b1,…,bm)t∈中隨機(jī)挑選一個隨機(jī)均勻分布向量s,然后從,同時。從(q)中隨機(jī)挑選出一個誤差向量e,且e應(yīng)當(dāng)滿足e∈。對明文向量e∈下密文向量cT=sTA+peT+bT(modq)進(jìn)行計算,然后輸出密文向量。
2.1.4 解密過程
用v表示向量,對vT=cTR(modq)的值進(jìn)行計算,然后再對bT=vTR-1(modp)的值進(jìn)行計算,由此可知明文的值。
首先,需令vT為
假設(shè)參數(shù)q=poly(n)無限大,參數(shù)β=poly(n)滿足最小條件值,同時使得peT+bT中所有元素皆小于q,則
對區(qū)塊鏈信息加密的算法主要建立決策版本的LWE問題(Decisional LWE,DLWE)問題上,并需要使算法滿足選擇明文攻擊下的不可區(qū)分性(Ⅰndistinguishability under chosen-plaintext attack,ⅠND-CPA)安全性[6]。假設(shè)存在一個可區(qū)分性的算法,存在巨大攻擊優(yōu)勢ε能夠在短時破解參數(shù)為n、m、p、q和β的加密算法,則需要借助區(qū)塊鏈下某區(qū)分算法來構(gòu)建一個區(qū)分器D1,若在相同時間內(nèi)攻擊者的攻擊能夠以不少于ε/2m的優(yōu)勢破解參數(shù)n、m、p、q和β下容錯學(xué)習(xí)(Learning with errors,LWE)問題,則可視為該算法是安全的。為此,需要假設(shè)A1為具有選擇明文攻擊(Chosen Plaintext Attack,CPA)能力的對象,其擁有巨大的攻擊優(yōu)勢區(qū)分不同明文條件的加密密文。對此,需要構(gòu)建一個優(yōu)勢不少于ε/2m概率的區(qū)分器D1,并使其可以區(qū)分如下2個分布條件密文
若密文向量為cT=sAT+emT(modq),則攻擊密文應(yīng)當(dāng)為pcT+bT=s1AT+pe+bT(modp),其中屬于均勻隨機(jī)分布。因p與q是互異的2個素數(shù),所以通過A1的CPA攻擊能力可以準(zhǔn)確猜測出k的概率為(1+ε)/2,進(jìn)而認(rèn)為D1輸出1時的概率約為(1+ε)/2。
綜上,區(qū)分器D1可以準(zhǔn)確區(qū)分出2個分布的算法優(yōu)勢應(yīng)當(dāng)高于ε/2。因此,DLWE問題所需的最大優(yōu)勢應(yīng)當(dāng)高于ε/2m。
本文所提區(qū)塊鏈信息加密算法需要將其設(shè)置在Linux操作系統(tǒng)上,為使所建平臺能夠順利運行上述功能設(shè)計,需要在Linux操作系統(tǒng)中配置功能運行所需要的庫[7-8]。
在保障最簡潔實驗設(shè)計的前提下設(shè)計6個節(jié)點,以此構(gòu)建能源互聯(lián)網(wǎng)下電力區(qū)塊鏈信息節(jié)點框架,節(jié)點信息見表1。
表1 節(jié)點設(shè)置
以上述為基礎(chǔ)構(gòu)建電力區(qū)塊鏈的數(shù)據(jù)庫,其中節(jié)點a—e皆為重量級節(jié)點,屬于電力區(qū)塊鏈數(shù)據(jù)庫下承擔(dān)數(shù)據(jù)存儲的重要節(jié)點,而節(jié)點f為輕量級節(jié)點,具有對上述節(jié)點的驗證能力,但不具備數(shù)據(jù)存儲功能。
作為能源互聯(lián)網(wǎng)下的電力區(qū)塊鏈模型,其所受攻擊的重點應(yīng)當(dāng)放置在分叉攻擊對系統(tǒng)造成擾動上。若在某次攻擊中存在多個驗證節(jié)點被攻擊,并在攻擊過程中試圖構(gòu)建一個新的區(qū)塊鏈分支,假設(shè)攻擊者所能夠控制的分叉鏈長度與主鏈長度的差距為z,在攻擊者某輪的攻擊中防守率為q[9]。攻擊者在某輪的分叉攻擊中成功攻破防火墻盜取電力信息的概率見表2。
表2 實驗結(jié)果
由雙叉攻擊得出的模擬結(jié)果曲線如圖2所示。
圖2 雙叉攻擊成功的概率圖
由圖2數(shù)據(jù)可知,攻擊者的分叉攻擊成功率會隨著隨z的增加而出現(xiàn)下降。從理論上看,只有攻擊者具有電力區(qū)塊鏈50%以上的算力時才可攻破加密數(shù)據(jù)。
3.3.1 加密時間分析
圖3與圖4為電力區(qū)塊鏈下密鑰的生成時間與加密時間。
由圖3和圖4中數(shù)據(jù)可知,由格密碼設(shè)計而成的輕量級同態(tài)加密方法和全同態(tài)加密方法,在密鑰生成與加密時間上均出現(xiàn)明顯的下降。同時,因零數(shù)據(jù)情況的存在,所以其加密與解密活動可提前結(jié)束,或作為不滿足判斷條件將其轉(zhuǎn)移至其他同態(tài)運算,該現(xiàn)象在理論上存在可優(yōu)化的空間。另外,因整個同態(tài)加密活動時間中效率會受向量的維數(shù)影響,所以當(dāng)所需維數(shù)較少時,對數(shù)據(jù)加密的時間將會縮短。
圖3 加密時間圖
圖4 解密時間圖
3.3.2 數(shù)據(jù)隱私性分析
在區(qū)塊鏈的中轉(zhuǎn)節(jié)點中,通過可借助零數(shù)據(jù)節(jié)點數(shù)據(jù)作為預(yù)驗證數(shù)據(jù)進(jìn)行用電終端的活動判斷,例如對數(shù)據(jù)的轉(zhuǎn)移安全性驗證、交易轉(zhuǎn)移條件驗證及驗證攻擊風(fēng)險隱患等。上述活動皆滿足數(shù)據(jù)管理標(biāo)準(zhǔn)要求后,才可進(jìn)行用電終端數(shù)據(jù)信息的加密與遷移,因所有數(shù)據(jù)皆受到加密算法處理,且通過專屬信道進(jìn)行通信,所以受到攻擊導(dǎo)致信息泄露的出現(xiàn)概率相對較低。
綜上所述,本文以格密碼為基礎(chǔ)構(gòu)建用于能源互聯(lián)網(wǎng)下電力區(qū)塊鏈信息的加密算法。時刻掌握用電終端用電信息,可以為電力調(diào)度提供幫助,保護(hù)原始數(shù)據(jù)不會受到盜取、更改及違法利用。通過實驗結(jié)果可看出,所提方法具有較高的數(shù)據(jù)加密與解密效率,能夠在短時間內(nèi)實現(xiàn)對產(chǎn)生數(shù)據(jù)的管控,且承受攻擊能力大幅提高,能夠較好地保護(hù)用電終端信息安全,為相關(guān)人員或單位提供幫助。