葉 青,鄭路攀,祝 勇,柳青山,王鍵賓
(1.衢州光明電力工程有限公司,浙江衢州 324000;2.西南交通大學,四川成都 610031)
現階段,隨著計算機網絡與通信科學[1-2]快速發展,一大批新的技術應用于工程實踐,這些技術推動著電力系統朝著智能化和信息化的方向發展,當前各種電力工程項目的管理逐漸實現了與現代化信息技術的深度融合;但這也帶來了諸多問題,海量數據的傳輸效率低是當前發展的瓶頸。因此如何高效地實現電力工程不同系統之間數據的共享及傳輸,已成為了當前電力工程[3]領域亟需解決的熱點問題。
在電力工程領域,不同的電力系統之間存在著大量的共享數據,且系統間還存在數據的多重交叉共享。現有的數據共享體系缺乏統一的標準,數據傳輸效率低、應用效果差。分布式區塊鏈[4]技術憑借其存儲數據去中心化、設置加密[5]及防篡改算法[6]等多重突出優勢,已被廣泛應用于數據共享平臺的搭建。在電力工程的不同系統之間引入基于區塊鏈的數據共享平臺,并設計一種高效的信息加密算法,可以充分保證電力相關數據的有效共享與傳輸。因此,基于區塊鏈和加密技術,文中提出了一種新的電力工程數據共享策略。首先,采用聯盟區塊鏈[7]結構作為數據共享系統的基礎框架;其次,引入代理重加密算法[8]用于上傳到區塊中的共享數據的加密處理,從而保障共享數據的安全;最終,通過哈希指紋技術實現了共享前后數據的一致性驗證。
分布式區塊鏈技術以區塊[9]作為基本數據結構進行數據的有效存儲。在不同的區塊節點之間,采用一致性算法生成新的數據或實現原有數據的更新。同時,為實現不同節點間數據的安全傳輸和穩定共享,通常會引入加密算法對數據進行加密處理。分布式區塊鏈整體框架如圖1 所示,主要包括基礎數據層、網絡傳輸層、共識機制層[10]和實際應用層四個主要組成部分。

圖1 分布式區塊鏈整體框架
基礎數據層是基礎數據結構區塊的完整性表示;網絡傳輸層能確保不同分布式區塊節點之間數據的傳輸與對等驗證;共識機制層通過選取不同的共識機制算法,實現節點數據在不可信的情況下也能達成共識;而實際應用層則體現了區塊鏈技術在實際場景中的具體應用。
現階段,代理重加密算法憑借其安全性高、穩定性強和部署靈活等優勢在共享數據加密領域已得到了廣泛應用。在文中基于區塊鏈的共享數據策略方案設計中,選用代理重加密算法對共享數據進行加密,下面對其實現原理進行描述。
代理重加密算法以重加密密鑰和密文數據為基礎,完成加密操作。步驟如下所示:
1)初始化。確定安全系數記為k,并應用此系數生成一個屬性矩陣記為S,此時公共的系統參數為GP,系統的密鑰為MSK,公鑰為PK。
2)密鑰生成。基于上述構造出的隨機矩陣和密鑰對,確定具體的加密規則,可表示如下:

式(1)中,SA、SB分別為用戶A 和B 的屬性集合,代指電力工程數據傳遞的雙方;SKA、PKA分別為用戶A 的私鑰和公鑰;SKB、PKB分別為用戶B 的私鑰和公鑰。
3)重加密密鑰生成。假設當前是用戶A 向用戶B發送信息,則重加密密鑰的生成過程如式(2)所示:

可以看到,式(2)中新加入了M’和ρ’兩個參數,這兩個參數可看作一個共享結構,該結構作為重加密算法的新參數使得加密系數更高,最終生成為重加密密鑰。
4)加密。加密過程如式(3)所示:

通過步驟(2)生成的公共密鑰PKA和參數GP,可以將明文m加密為密文CTA。
5)重加密。對步驟(4)中的密文進行加密,如式(4)所示:

可以看到,密文CTA可通過RKA→B轉換為CTB。
6)一次解密。由公鑰、密文及用戶A 的私鑰即可解密得到明文,如式(5)所示:

7)重解密。對重加密后的密文使用用戶B 的私鑰SKB進行解密,如式(6)所示:

通過上述具體加密的實現原理可知,在對共享數據進行加密的過程中,代理重加密算法進行了兩次加密操作,第一次加密是針對于數據源的擁有者而言的,是擁有者對源數據進行的加密;而第二次加密是代理者以密文轉換為目的的重新加密。
在代理重加密的實現方式中,依靠一個第三方的代理服務器作為中介,將一方加密后的數據再次加密成另一方能解密的數據。在整個加密過程中,雙方的私鑰與原始數據信息均不被泄露,因此具有優異的加密性能表現。
在區塊鏈技術廣泛應用之前,傳統的數據共享由于中心化的數據存儲方式,數據上傳前后的數據完整性得不到統一,第三方機構可能會對中心存儲區域的共享數據進行篡改,從而導致共享數據信任危機[11]。文中在進行電力工程共享數據策略設計時,依托于分布式區塊鏈技術,并引入SHA-256[12]哈希指紋算法,從而實現數據共享前后的完整性驗證。
下面將對文中提出的基于區塊鏈和哈希指紋算法的數據完整性驗證原理進行介紹,具體原理如圖2所示。

圖2 基于區塊鏈的數據完整性驗證原理
上述數據完整性驗證流程可簡要概括成三個主要的實現步驟。首先,共享數據源的提供者采用SHA-256 算法作用于需要上傳的共享數據,從而得到共享數據對應的哈希指紋;其次,基于1.2 節中引入的代理重加密技術,共享數據的提供者對該數據進行加密操作,并將加密處理后的數據上傳到私有的網絡區塊中,從而得到一個數據存儲地址,再將第一步中得到的哈希指紋與文件存儲地址存入區塊鏈系統中;最終,共享數據的請求者采用代理重加密技術對加密后的密文進行解密操作,并基于SHA-256 算法再次對解密后的數據進行運算,得到對應的哈希指紋。將其與區塊鏈中存儲的指紋進行對比,從而實現共享數據上傳前后的完整性驗證工作。
為確保電力工程數據共享過程中的高可靠性及易用性,同時解決共享數據安全問題,文中設計的共享策略以分布式區塊鏈作為基礎架構,通過引入代理重加密技術實現共享過程中的數據隱私保護和數據安全共享。同時,對共享前后數據進行哈希指紋比對,實現了數據的高度一致性。文中整體電力工程共享數據策略設計如圖3 所示。

圖3 文中整體電力工程共享數據策略設計
從圖3 可以看出,文中提出的電力工程數據共享策略采用了聯盟區塊鏈,并以此作為數據共享策略的基礎框架。在此基礎上,實現基于代理重加密技術的共享數據安全和隱私保護,并進行共享前后數據的一致性驗證。在該方案設計中,提供電力數據的不同機構作為共享數據源的提供者和數據擁有者,該聯盟內的其他機構對共享數據源具有共享權限。
實驗在PC 機平臺基于Python 編程語言進行仿真驗證,軟硬件環境配置如表1 所示。

表1 實驗軟硬件環境配置
在進行具體的實驗環境搭建時,文中將設計的聯盟區塊鏈網絡部署到單機上,同時基于Docker 技術[13]自動分配多個節點用于部署。
為了驗證文中提出的方案具有高可靠性和易用性,對提出的基于分布式區塊鏈的數據共享方案進行性能測試,測試的內容主要針對數據共享成功率、系統運行吞吐量和數據查詢效率等方面。基于已搭建完成的分布式區塊鏈[14]數據共享系統進行性能驗證,其中Write 操作代表發布者向系統中寫入共享數據的操作,Query 操作代表請求者從系統中讀取共享數據的操作。表2 和表3 給出了所提方案的Write 與Query 操作成功率測試結果,表中TPS(Transactions Per Second)表示每秒鐘傳輸的請求數量。

表2 Write操作成功率測試結果

表3 Query操作成功率測試結果
通過表1、表2 可知,對于Write 操作與Query 操作,當請求的速度增大時,交易的成功率仍穩定在100%保持不變。
為了更直觀地展示Write 操作與Query 操作的交易時延和系統吞吐量[15-16]狀況,文中以上述實驗參數為基礎,繼續進行吞吐量[17-18]及交易時延的測試實驗,實驗結果分別如圖4、圖5 所示。
通過觀察圖4(a)可以發現,針對Write 操作而言,隨著請求速度的增加,操作時延逐漸增加。系統的平均時延時間由1.3 s 增加到了10.5 s,但該時延仍處于系統可接受范圍之內。此外由圖4(b)可以發現,文中搭建的數據共享系統的整體吞吐量峰值達到了150 TPS,具有良好的吞吐量性能表現。

圖4 Write操作交易時延和吞吐量折線圖
通過觀察圖5(a)可以發現,當請求速度低于300 TPS 時,Query 操作的時延較低,基本維持在0.4 s之下,具有優異的共享數據查詢效率。當請求速度達到400 TPS 時,Query 操作的時延發生了驟變,但仍保持在可接受范圍之內。此外由圖5(b)可發現,在Query 操作下,系統吞吐量的峰值達到了290 b/s。

圖5 Query操作交易時延和吞吐量折線圖
文中設計了一種電力工程數據共享策略,以分布式區塊鏈為基本架構,在此基礎上引入了代理重加密技術用于對共享數據的加密處理,并增加整個系統的安全性與隱私保護。同時,基于哈希指紋進行數據共享前后的一致性驗證,進一步保障共享數據的高可靠性和易用性。對文中搭建的電力工程數據共享系統進行性能驗證,結果表明,該系統能夠穩定進行數據共享操作,且具有較低的網絡時延及較高的系統吞吐量。