文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.11.017
中文引用格式: 余容,黃劍,何朝明. 基于SM4并行加密的智能電網監控與安全傳輸系統[J].電子技術應用,2016,42(11):66-69.
英文引用格式: Yu Rong,Huang Jian,He Chaoming. Smart grid monitoring and secure transmission system based on SM4 parallel encryption[J].Application of Electronic Technique,2016,42(11):66-69.
0 引言
智能電網通過各種總線協議將帶有傳感器的物理設備與計算機系統連接一起,組成一個綜合監控管理系統,具有高效性、可靠性、便捷性等優勢[1]。
雖然現代電力網給社會生活帶來了便捷,但是現有系統在數據的終端采集上還存在很多不足之處,如現有許多監控系統只注重對設備數據的采集而忽略了設備管理的便捷性;其監控系統的穩定性不夠,設備網絡斷開后不能自動連接;當電網規模擴大,監控設備隨之增多,數據傳輸的實時性降低。此外,智能電網系統—旦受到惡意攻擊,系統本身將會遭受嚴重的破壞,從而給社會生活、工業生產各方面帶來巨大的損失。因此,智能電網系統的安全面臨著更為嚴峻的挑戰[2]。如何建立一個有效的智能電網安全監控系統,制定可靠的數據安全傳輸策略,有效地保障信息在釆集傳輸過程中的安全可靠性,已成為當務之急。
1 系統總體設計方案
設備數據監控系統設計成分層結構分為感知層、網絡層和應用層,每層分別實現各自的功能,整體框架圖如圖1所示。
(1)感知層:主要是基于ModBus和IEC104協議的數據采集系統。系統通過讀取站點配置文件,創建采集線程,采集線程不斷地采集各個ModBus和IEC104設備的數據,并通過網絡層傳輸給中心管理系統。
(2)網絡層:主要是基于GPU的SM4并行數據加密傳輸系統。通過改進的并行加密技術對采集到的數據進行加密處理,提高數據加密的安全性和實時性。
(3)應用層:主要包含中心數據監控系統和設備控制系統。數據監控系統實現對采集到的數據存儲、顯示等,設備控制系統實現對ModBus設備和IEC104設備的統一控制功能。
2 智能電網監控系統實現
2.1 ModBus和IEC104協議
ModBus通信采用C/S通信方式。目前,工業中將 ModBus通過以太網結合TCP/IP協議組成ModBus TCP/IP網絡進行通信[3],其應用數據單元(ADU)由供TCP/IP專用的ModBus應用協議頭(MBAP)和通用的協議數據單元(PDU)組成[4]。
IEC104協議是為解決電力控制和高速網絡傳輸的需求制定的一種采用TCP/IP網絡協議進行傳輸的通信協議[5]。該協議采用C/S通信方式??蛻舳税l送數據請求,而服務端進行應答請求;服務端也可以直接發送控制命令來修改客戶端的數據,實現雙向讀寫[6]。
2.2 數據采集控制模塊實現
數據采集模塊是采集系統的核心,該模塊讀取MsSQL數據庫中的modbus_table和iec104_table配置表,配置表中保存了站點設備的配置信息。數據采集控制系統的主線程根據讀取到的配置記錄初始化內存數據,并創建ModBus數據采集線程、IEC104數據采集線程和設備控制線程。采用多線程的結構,可以實現設備的并行采集的功能。ModBus數據采集模塊的主線程流程圖如圖2所示。
為了確保數據采集的完整性,在采集線程中引入了斷線重連機制。一旦建立的TCP/IP連接發生斷開情況,則立刻刷新連接,重新建立TCP/IP連接,繼續發送采集請求??刂凭€程在啟動后一直處于監聽狀態,等待上層管理系統發來控制命令。接到控制命令后,解析出是ModBus控制指令還是IEC104控制指令,隨后對相應設備發起控制命令。
ModBus通信是基于TCP/IP協議。首先,查看連接狀態,如果處于斷開狀態,則調用connect_site()函數進行連接,并更改狀態為采集狀態。當處于采集狀態時,通過調用read_site_register()和read_site_bit()函數進行數據采集,采集流程圖如圖3所示。若采集返回出錯,則重新設置連接狀態,等待下次循環重新建立連接并采集數據。當處于關閉狀態時,通過調用close_site()函數關閉TCP/IP連接并釋放相應的資源。
IEC104數據采集線程的流程圖如圖4所示。首先建立TCP連接。然后初始化IEC104幀,發起總召喚命令,啟動數據傳輸功能并等待數據的到來。當收到數據時,驗證報文的合法性,通過驗證的報文進入報文解析處理函數,然后根據報文具體功能回復相應命令;沒有通過驗證的報文直接丟棄。
2.3 設備控制模塊實現
根據ModBus設備和IEC104設備控制命令的格式及特點對其進行了一次封裝,提供給用戶統一的控制命令接口,其控制命令格式如圖5所示。
(1)設備ID:表示目標設備的ID號,所有的ModBus設備和IEC104設備統一進行編號。
(2)控制類型:當目標設備是ModBus設備時, 0表示寫寄存器,1表示寫線圈;當目標設備是IEC104設備時,0表示遙調命令,1表示遙控命令。
(3)目標地址:表示目標設備待操作的地址。
(4)數值:表示對目標地址進行寫操作的數值。
(5)控制標志:用來表明本次控制操作的狀態,0表示選擇狀態,1表示控制狀態,2表示撤銷狀態。
設備控制模塊主要由一個單獨的控制線程實現對ModBus設備和IEC104設備的統一控制??刂凭€程在啟動后一直處于監聽狀態,等待管理系統發來的控制命令。接到控制命令后,解析出是ModBus還是IEC104設備的控制指令,隨后構造相應的控制命令幀,從而發起控制命令,具體流程如圖6所示。
3 基于GPU的SM4并行加密
SM4 是一種分組密碼算法,其分組長度和密鑰長度均為128 bit。加解密算法與密鑰擴張算法都采用32輪非線性迭代結構[7]。在數據量較大的情況下,使用SM4串行加密的耗時成為了采集系統實時傳輸的瓶頸。本文利用GPU[8]并行計算能力與SM4算法的結構特點,設計了基于GPU的SM4并行數據加密模塊,將采集到的數據傳送給GPU,GPU把加密后的結果送給數據轉發模塊,提高了加密運算的實時性。
SM4并行加密模塊流程圖如圖7所示。首先,在CPU執行一次密鑰擴展,生成輪密鑰。然后,將輸入數據和擴展密鑰存儲到GPU全局存儲空間內。輸入數據分成每塊128 bit,通過調用cryptKernel核函數[9,10]實現每個GPU線程對數據塊的并行加密。最后,加密輸出的密文數據將再次被寫到全局設備存儲器內,隨后,CPU程序將輸出數據結果從GPU 的全局設備存儲器內取回,整個加密過程完成。
4 系統測試與分析
為了測試系統的功能與性能,在主機上運行數據模擬器應用程序,作為客戶端,用來產生ModBus和IEC104數據。以ModBus模擬器為例,運行數據采集系統對模擬器數據進行采集,通過中心數據管理系統顯示采集到的數據,如圖8所示。
通過運行設備控制應用程序,實現對ModBus或IEC104設備的控制。運行設備控制程序后,就可以在“〉”提示符下輸入控制命令。下面分別對ModBus設備寫線圈、寫寄存器命令和對IEC104發起遙控命令,測試結果如圖9所示。
以第二條命令為例。第二條命令是實現對ModBus設備寄存器值的寫操作,即對1號設備地址為21的寄存器進行寫數值“12”操作,返回值為零,表明寫寄存器操作執行成功。為了驗證命令的執行情況,通過對比模擬器在執行命令的前后狀態,可以發現地址為21的寄存器值發生相應的變化,如圖10所示。
5 總結
本文設計了一種智能電網監控與安全傳輸系統,采用與TCP/IP協議結合緊密的ModBus和IEC104協議進行數據采集,便于數據傳輸,并在系統中引入斷線自動重連機制,完善系統功能。為了確保和提高批量數據傳輸過程中的安全性與實時性,有效結合SM4加密算法與GPU并行計算,提出基于GPU并行計算的SM4加解密基本架構?,F場實驗測試表明,系統運行狀況良好,可有效提高數據傳輸時的安全性與實時性,最終,實現對設備數據進行實時采集與并行加密傳輸的功能,為工業監控系統提供了核心模塊。
參考文獻
[1] 劉漢宇,牟龍華.微電網CPS體系架構及其物理端研究[J].電力自動化設備,2012,32(5):34-37.
[2] 徐琳,溫蜜,李晉國.智能配電網中具有隱私保護的數據安全認證方案[J].電子技術應用,2015(12):98-101.
[3] 金德剛,吳自然,吳桂初.基于Modbus/TCP的數字式電流互感器設計[J].電子技術應用,2014,40(6):93-95.
[4] 高秀蘭.基于Modbus TCP/IP通訊綜合監控系統的實現[J].儀表技術與傳感器,2015(10):104-106.
[5] 陶學軍,徐奉友,王艷領.IEC 60870-5-104協議在光伏電站中的應用[J].機電工程技術,2014(3):40-44.
[6] 馬曉紅,管荑,林祺蓉.104規約在調度自動化系統中的應用[J].山東電力技術,2011(6):002.
[7] WANG K,PENG D,SONG L,et al.Implementation of Modbus communication protocol based on ARM Coretx-M0[C].System Science and Engineering(ICSSE),2014 IEEE International Conference on.IEEE,2014:69-73.
[8] KANDROT E,SANDERS J.CUDA by example:an introduction to general-purpose GPU programming[M].Amsterdam:Addison-Wesley Longman,2010.
[9] IWAI K,NISHIKAWA N,KUROKAWA T.Acceleration of AES encryption on CUDA GPU[J].International Journal of Networking and Computing,2012,2(1):131-145.
[10] Shane Cook.CUDA并行程序設計GPU編程指南[M].蘇統華,李東,譯.北京:機械工業出版社,2014.