邵猷海, 王勇, 楊云, 王相
(1.上海電力大學,計算機科學與技術學院, 上海 200090;2.國網上海市電力公司, 上海 200122)
互聯網通信時代,隨著海量數據的接入,電力信息普遍相互傳輸,來自各方面惡意攻擊的可能性就越大。構建一個安全、可靠、實時、高效的智能電力用戶用電信息采集傳輸系統是一項重要研究內容,其中最基本的目標是能夠確保數據信息的完整性、機密性和有效性,從而確保電力信息系統穩定可靠高效的運行。此外,可靠的通信網絡也是實現用戶與采集終端進行互動的一個重要保障。
電力信息采集系統由于開放性和互動性受到很多非法控制、設備冒用等安全隱患。國外2011年的“Night Gragon”病毒攻擊SCADA系統,導致其中重要數據的丟失,這些寶貴數據直接帶來的經濟損害不可估量。2012年的“Flame”病毒攻擊中東的多個國家,致使這些地區的人們用電遭受巨大變故,與之更為難以想象的是長期的經濟低迷帶來的正常生活的開展。2019年,位于大洋彼岸的南美洲國家委內瑞拉遭受敵方刻意用電信息安全攻擊,導致全國發生大范圍內停電,全國絕大多數州電力陷入供應中斷的癱瘓局面,長期以來這些大量的惡意攻擊事件的發生引起了安全專家對電力信息安全采集防護的重視并進行深入研究。爨玉偉等[1]通過雙重加密密鑰的方式增加密鑰強度,從而提出一種DES密鑰延長的方法,在傳統DES的基礎上,基于三重DES算法與獨立子密鑰的混合實現文件加密系統,但是該方案局限于較短密鑰長度且使用多重加密會增加額外的開銷,不利于大量數據的處理。劉珺峰等[2]提出將密鑰策略的屬性訪問控制方法應用于智能電網中,實現了對電力數據的加密控制。然而在操作中心使用該功能密鑰時,需要開啟多個屬性控制權限,不同權限之間的訪問不能相互連通。王煜等[3]優化改進了非對稱加密算法,通過混合利用公鑰密碼體制的思想將公私鑰保護應用到加解密的系統實現上面,實現了對于待處理信息路徑來源和完整信息具體內容的加密處理,但是該方法采用公鑰進行解密無疑降低了信息的保密程度,應對公鑰的保密提出新的要求。董偉偉等[4]提出使用RSA-AES-HASH安全采集傳輸方案,采用混合密碼體制實現電表與數據中心的身份認證,可以同時集合密鑰管理的便利、安全和速度快等多個優點,但是這種認證方式整個過程因為RSA作為簽名認證過程,較使用國密SM2簽名算法進行身份認證簽名速度慢,完整通信過程的耗時較大,不利于電力信息這種敏感數據對實時性要求較高的應用場合。張京倫[5]面對公鑰基礎設施存在不可調和的安全問題,優化具體加密算法AES,給出了合理的解決方案,且實驗結果表明該方案使用的自動化工具性能很好,能夠有效抵抗外界惡意攻擊,然而這些安全算法的基礎是建立在國外密碼學算法之上,對于算法關鍵部分S盒設計的具體細節至今沒有公布,對于像我國電力行業這種涉及到民生領域存在很大的安全隱患。駱釗等[6]通過優化國密SM2算法并深入研究其通信協議交互過程,設計出滿足國家對電力信息行業標準自主可控的信息防護平臺,實驗表明該信息防護平臺能夠保證通信雙方身份的準確無誤且對不同用戶能否正常訪問的權限進行了隱私保護,實現對不同角色的個性化管理控制,但該方法每次傳輸都要通過完整的TLS握手來保障通信安全,給數據的傳輸帶來過長的時延這一安全隱患,當發生故障時對現場的監控有嚴重后果。綜上所述,針對電力信息采集傳輸的安全研究不能停留在某一種國外加密算法的簡單應用,應當引入基于國內密碼學標準多重加密算法的綜合應用,本文利用嵌入式設備主控芯片STM32F103和電能計量芯片ATT7022搭建具備高精度、實時性強的小型電力用電信息采集系統,解決了傳統電力采集裝置實時性差、精度不夠等問題。同時優化對稱分組密碼SM4算法,進行安全加密傳輸,加密過程使用的密鑰利用SM2對密鑰進行防護,結合三大國際主流對稱加密算法對實驗結果進行了比較,結果表明本方案可以減少內存的消耗,有效地提高了數據加密的性能,從而可以保證電力生產和數據可靠的安全運行。
本文設計的系統主要以低功耗嵌入式設備STM32F103為控制核心,對于高精度的電能參數的采集需要大量的浮點運算且存儲空間較大以便實時存放,具有接口豐富、功耗低、運行穩定等特點。電力信息采集系統硬件模塊主要構成如圖1所示。

圖1 電力信息采集系統硬件設計框圖
首先,對于待處理的電力信息并不能直接通過計量芯片處理,因為實際場景電能參數很大,所以本系統設計會先經由電流和電壓互感器進行轉換為可以為后續處理模塊正常使用的數據,然后利用電能計量芯片完成對三相電的各種有效值測量,與嵌入式主控芯片之間通過通用串行外設接口完成參數的傳送,MCU模塊實現電力信息的各種處理如顯示屏顯示、串口打印輸出等。通過采用ATT7022來實現電壓電流信號采集,可完成以往需要多臺儀器共同的測量才能完成的工作量,而且減少了設備損壞的可能,降低了出現誤測量的風險。本設計方案中ATT7022和MCU之間的數據傳送依靠SPI進行,每一個SPI通信時需要用到幾條主要的信號線,其中片選CS負責選用哪個從設備進行通信,選中方式為將引腳電平拉低,在下降沿到來的時候負責選中。主設備產生時鐘信號SCLK,采集芯片在下降沿的時候接收來自外界采樣的數據,然后在上升沿翻轉的時候完成數據對外的輸出。
在設計軟件部分程序時,首先需要對采集芯片進行系統初始化。ATT7022芯片通過SPI引腳與MCU之間進行數據的讀寫傳送,配置好該引腳之后選擇通信讀寫函數完成電力數據的讀寫操作,然后在ATT7022芯片地址寄存器中片選信號到達下降沿的時候,開始讀寫數據,在一個完整的讀寫周期內完成多個字節的讀寫,執行指令后,片選信號會被拉高到上升沿,經由這樣處理完成一次完整的數據傳輸過程。
該采集終端系統開發過程中通過IDE Keil5實現編程,完成相關配置,然后燒錄程序,設備正常獲取指令之后,采集系統會實時進行相應的用電信息獲取,通過選擇顯示屏輸出或者串口打印輸出的方式輸入到上位機,經由上位機的處理保存。用電信息采集系統的硬件實物如圖2所示。

圖2 電力信息采集系統硬件實物
目前使用較多的國際對稱分組加密算法有DES、AES、IDEA等,SM4算法[7]是我國自主設計的一個分組迭代密碼算法。不同于使用feistel結構的DES以及使用SPN結構的AES,SM4在設計過程使用滑動窗口結構。對于電力信息數據實時處理、運算性能等高要求的場合均可采用嵌入SM4算法的物聯網設備,一方面由于算法在硬件電路設計上面有良好的性能,可以有效抗側信道攻擊以及電磁故障攻擊等,另一方面算法本身計算速度非常快、穩定。
SM4對稱加密算法[8]流程圖如圖3所示。

圖3 SM4算法加密計算過程
SM4對稱加密算法描述。


step1 32輪迭代運算,
Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rKi)=
Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rKi)
step2 反序變換處理輸出解密后的信息,
(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=
(X35,X34,X33,X32)
傳統對稱分組加密算法SM4完整部分由加解密算法和輪密鑰擴展算法共同組成,其分組長度和密鑰長度都比DES長,選用為128 bit,其安全性主要體現在設計過程中使用的S盒,國際主流對稱加密算法DES的S盒至今美國方面未曾完全公開,由此可以推斷,關于此類加密算法肯定存在不可忽視的后門情況,使用該類算法機制很容易對我國敏感數據造成威脅,我國自主研發的SM4算法目前已經得到了廣泛使用,然而以往對于該類算法應用主要集中在無線局域網產品當中。優化討論密鑰擴展算法中初始密鑰的來源,前人往往都是隨機使用密鑰,并未形成一定的可靠性保護機制。

實驗利用硬件電路設計的部分作為數據采集來源,身份認證的原始消息即為采集中心的數據,經由公私鑰對生成后先進行簽名后驗證通過后經由通信網絡對稱加密傳輸,送入主站系統。具體實驗設備為處理器為八核CPU、主頻為1.6 GHz、RAM為16 G、512 G的SSD,Windows 10的操作系統計算機,STM32與ATT7022E搭建的采集終端設備,虛擬機環境配置為基于Ubuntu7的Openssl開源軟件算法庫以及各種其他必要測量設備。
用戶用電信息通過采集系統發送到上位機保存,同時可以通過后臺獲取的數據進行加密處理后再進行傳輸,不同于明文在通信信道上的直接傳輸,經過國密SM4算法加密處理后的數據能夠有效抵抗差分攻擊、側信道攻擊等第三方攻擊,任何企圖經由竊取的信息進行破解難度都是很大的,在密碼學研究領域,當破解難度遠大于使用效率的時候,即可認定這種加密方案是安全可靠的。
下面首先對對稱分組密碼算法SM4與其他主流對稱加密算法DES、AES等進行性能比較,測試環境為基于Ubuntu7的Openssl開源軟件算法庫,通過命令行終端輸入相應的指令測試對稱分組加密算法性能,測試結果如圖4所示。

圖4 不同對稱加密算法處理數據塊測試結果
從圖4中可以分析到不同算法每秒完成處理的數據量是多少KB,比如對于待處理的數據如果按照256 bit來進行分組,使用SM4對稱分組加密算法每秒處理約112 MB,DES每秒處理約83 M。當處理數據量非常大的時候,此類對稱加密算法優勢體現的更加明顯。對于涉及到我國基礎民生行業的電力用戶信息數據采用國密SM4系列算法進行加密處理能夠很好的保證數據的機密性。使用非對稱密碼算法體制SM2的公鑰加密過SM4的加密密鑰可以保護密鑰的安全性,該密鑰具有強隨機性,SM2公鑰加密過程引入了SM3摘要生成算法,生成的摘要隨機性能很好,接著然后對待處理信息進行加密處理,加密明文輸出密文結果如圖5所示。

圖5 SM4加密明文輸出結果
加密出來的密文通過驗證與解密出來的數據是否一致判斷加密信息是否準確無誤,實驗結果可以看出該算法能夠正常加解密,為電力信息的防護提供了一個很好的基礎。
為了進一步驗證該方案使用SM4加密的優勢,本文使用Java編程語言設計程序對同一電力信息數據分別采用DES、AES和RSA等不同加密算法進行內存消耗測試,從圖6實驗結果可以看出,使用不同加密算法配合相應的工作模式對同一數據進行加密,內存消耗有很大差異, SM4加密算法ECB和CBC模式內存消耗均遠小于AES、RSA等,進一步可以判斷證明,該安全防護方案能夠以消耗較少的資源條件,適合推廣使用。

圖6 加密同一電力數據算法內存消耗對比
本文針對用電信息采集系統可能存在的數據竊取等安全問題,利用嵌入式ARM芯片STM32F103與電能專用計量芯片ATT7022搭建小型用電采集系統,該終端設備采集精度高、穩定運行、抗干擾能力強,進一步基于此使用對稱分組密碼SM4算法進行數據加密,不僅有效避免了國外AES等算法可能存在的后門泄露事件,同時有效節省了硬件開發資源,卻能夠提供同等的安全強度。基于SM4算法加密對用電信息采集系統進行安全防護,防止有害信息和惡意攻擊對電力網的干擾而引發的重大生產事故具有非常重要的意義。通過研究電力數據的采集傳輸安全問題,接下來工作重點可以進一步基于此搭建云服務器實現在線調試監控,實現與電力用戶雙向互動,從而指導科學合理用電,提高終端用戶安全防護意識和電網運行效率。