文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.11.017
中文引用格式: 余容,黃劍,何朝明. 基于SM4并行加密的智能電網(wǎng)監(jiān)控與安全傳輸系統(tǒng)[J].電子技術(shù)應用,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 引言
智能電網(wǎng)通過各種總線協(xié)議將帶有傳感器的物理設備與計算機系統(tǒng)連接一起,組成一個綜合監(jiān)控管理系統(tǒng),具有高效性、可靠性、便捷性等優(yōu)勢[1]。
雖然現(xiàn)代電力網(wǎng)給社會生活帶來了便捷,但是現(xiàn)有系統(tǒng)在數(shù)據(jù)的終端采集上還存在很多不足之處,如現(xiàn)有許多監(jiān)控系統(tǒng)只注重對設備數(shù)據(jù)的采集而忽略了設備管理的便捷性;其監(jiān)控系統(tǒng)的穩(wěn)定性不夠,設備網(wǎng)絡斷開后不能自動連接;當電網(wǎng)規(guī)模擴大,監(jiān)控設備隨之增多,數(shù)據(jù)傳輸?shù)膶崟r性降低。此外,智能電網(wǎng)系統(tǒng)—旦受到惡意攻擊,系統(tǒng)本身將會遭受嚴重的破壞,從而給社會生活、工業(yè)生產(chǎn)各方面帶來巨大的損失。因此,智能電網(wǎng)系統(tǒng)的安全面臨著更為嚴峻的挑戰(zhàn)[2]。如何建立一個有效的智能電網(wǎng)安全監(jiān)控系統(tǒng),制定可靠的數(shù)據(jù)安全傳輸策略,有效地保障信息在釆集傳輸過程中的安全可靠性,已成為當務之急。
1 系統(tǒng)總體設計方案
設備數(shù)據(jù)監(jiān)控系統(tǒng)設計成分層結(jié)構(gòu)分為感知層、網(wǎng)絡層和應用層,每層分別實現(xiàn)各自的功能,整體框架圖如圖1所示。
(1)感知層:主要是基于ModBus和IEC104協(xié)議的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)通過讀取站點配置文件,創(chuàng)建采集線程,采集線程不斷地采集各個ModBus和IEC104設備的數(shù)據(jù),并通過網(wǎng)絡層傳輸給中心管理系統(tǒng)。
(2)網(wǎng)絡層:主要是基于GPU的SM4并行數(shù)據(jù)加密傳輸系統(tǒng)。通過改進的并行加密技術(shù)對采集到的數(shù)據(jù)進行加密處理,提高數(shù)據(jù)加密的安全性和實時性。
(3)應用層:主要包含中心數(shù)據(jù)監(jiān)控系統(tǒng)和設備控制系統(tǒng)。數(shù)據(jù)監(jiān)控系統(tǒng)實現(xiàn)對采集到的數(shù)據(jù)存儲、顯示等,設備控制系統(tǒng)實現(xiàn)對ModBus設備和IEC104設備的統(tǒng)一控制功能。
2 智能電網(wǎng)監(jiān)控系統(tǒng)實現(xiàn)
2.1 ModBus和IEC104協(xié)議
ModBus通信采用C/S通信方式。目前,工業(yè)中將 ModBus通過以太網(wǎng)結(jié)合TCP/IP協(xié)議組成ModBus TCP/IP網(wǎng)絡進行通信[3],其應用數(shù)據(jù)單元(ADU)由供TCP/IP專用的ModBus應用協(xié)議頭(MBAP)和通用的協(xié)議數(shù)據(jù)單元(PDU)組成[4]。
IEC104協(xié)議是為解決電力控制和高速網(wǎng)絡傳輸?shù)男枨笾贫ǖ囊环N采用TCP/IP網(wǎng)絡協(xié)議進行傳輸?shù)耐ㄐ艆f(xié)議[5]。該協(xié)議采用C/S通信方式??蛻舳税l(fā)送數(shù)據(jù)請求,而服務端進行應答請求;服務端也可以直接發(fā)送控制命令來修改客戶端的數(shù)據(jù),實現(xiàn)雙向讀寫[6]。
2.2 數(shù)據(jù)采集控制模塊實現(xiàn)
數(shù)據(jù)采集模塊是采集系統(tǒng)的核心,該模塊讀取MsSQL數(shù)據(jù)庫中的modbus_table和iec104_table配置表,配置表中保存了站點設備的配置信息。數(shù)據(jù)采集控制系統(tǒng)的主線程根據(jù)讀取到的配置記錄初始化內(nèi)存數(shù)據(jù),并創(chuàng)建ModBus數(shù)據(jù)采集線程、IEC104數(shù)據(jù)采集線程和設備控制線程。采用多線程的結(jié)構(gòu),可以實現(xiàn)設備的并行采集的功能。ModBus數(shù)據(jù)采集模塊的主線程流程圖如圖2所示。
為了確保數(shù)據(jù)采集的完整性,在采集線程中引入了斷線重連機制。一旦建立的TCP/IP連接發(fā)生斷開情況,則立刻刷新連接,重新建立TCP/IP連接,繼續(xù)發(fā)送采集請求??刂凭€程在啟動后一直處于監(jiān)聽狀態(tài),等待上層管理系統(tǒng)發(fā)來控制命令。接到控制命令后,解析出是ModBus控制指令還是IEC104控制指令,隨后對相應設備發(fā)起控制命令。
ModBus通信是基于TCP/IP協(xié)議。首先,查看連接狀態(tài),如果處于斷開狀態(tài),則調(diào)用connect_site()函數(shù)進行連接,并更改狀態(tài)為采集狀態(tài)。當處于采集狀態(tài)時,通過調(diào)用read_site_register()和read_site_bit()函數(shù)進行數(shù)據(jù)采集,采集流程圖如圖3所示。若采集返回出錯,則重新設置連接狀態(tài),等待下次循環(huán)重新建立連接并采集數(shù)據(jù)。當處于關(guān)閉狀態(tài)時,通過調(diào)用close_site()函數(shù)關(guān)閉TCP/IP連接并釋放相應的資源。
IEC104數(shù)據(jù)采集線程的流程圖如圖4所示。首先建立TCP連接。然后初始化IEC104幀,發(fā)起總召喚命令,啟動數(shù)據(jù)傳輸功能并等待數(shù)據(jù)的到來。當收到數(shù)據(jù)時,驗證報文的合法性,通過驗證的報文進入報文解析處理函數(shù),然后根據(jù)報文具體功能回復相應命令;沒有通過驗證的報文直接丟棄。
2.3 設備控制模塊實現(xiàn)
根據(jù)ModBus設備和IEC104設備控制命令的格式及特點對其進行了一次封裝,提供給用戶統(tǒng)一的控制命令接口,其控制命令格式如圖5所示。
(1)設備ID:表示目標設備的ID號,所有的ModBus設備和IEC104設備統(tǒng)一進行編號。
(2)控制類型:當目標設備是ModBus設備時, 0表示寫寄存器,1表示寫線圈;當目標設備是IEC104設備時,0表示遙調(diào)命令,1表示遙控命令。
(3)目標地址:表示目標設備待操作的地址。
(4)數(shù)值:表示對目標地址進行寫操作的數(shù)值。
(5)控制標志:用來表明本次控制操作的狀態(tài),0表示選擇狀態(tài),1表示控制狀態(tài),2表示撤銷狀態(tài)。
設備控制模塊主要由一個單獨的控制線程實現(xiàn)對ModBus設備和IEC104設備的統(tǒng)一控制??刂凭€程在啟動后一直處于監(jiān)聽狀態(tài),等待管理系統(tǒng)發(fā)來的控制命令。接到控制命令后,解析出是ModBus還是IEC104設備的控制指令,隨后構(gòu)造相應的控制命令幀,從而發(fā)起控制命令,具體流程如圖6所示。
3 基于GPU的SM4并行加密
SM4 是一種分組密碼算法,其分組長度和密鑰長度均為128 bit。加解密算法與密鑰擴張算法都采用32輪非線性迭代結(jié)構(gòu)[7]。在數(shù)據(jù)量較大的情況下,使用SM4串行加密的耗時成為了采集系統(tǒng)實時傳輸?shù)钠款i。本文利用GPU[8]并行計算能力與SM4算法的結(jié)構(gòu)特點,設計了基于GPU的SM4并行數(shù)據(jù)加密模塊,將采集到的數(shù)據(jù)傳送給GPU,GPU把加密后的結(jié)果送給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,提高了加密運算的實時性。
SM4并行加密模塊流程圖如圖7所示。首先,在CPU執(zhí)行一次密鑰擴展,生成輪密鑰。然后,將輸入數(shù)據(jù)和擴展密鑰存儲到GPU全局存儲空間內(nèi)。輸入數(shù)據(jù)分成每塊128 bit,通過調(diào)用cryptKernel核函數(shù)[9,10]實現(xiàn)每個GPU線程對數(shù)據(jù)塊的并行加密。最后,加密輸出的密文數(shù)據(jù)將再次被寫到全局設備存儲器內(nèi),隨后,CPU程序?qū)⑤敵鰯?shù)據(jù)結(jié)果從GPU 的全局設備存儲器內(nèi)取回,整個加密過程完成。
4 系統(tǒng)測試與分析
為了測試系統(tǒng)的功能與性能,在主機上運行數(shù)據(jù)模擬器應用程序,作為客戶端,用來產(chǎn)生ModBus和IEC104數(shù)據(jù)。以ModBus模擬器為例,運行數(shù)據(jù)采集系統(tǒng)對模擬器數(shù)據(jù)進行采集,通過中心數(shù)據(jù)管理系統(tǒng)顯示采集到的數(shù)據(jù),如圖8所示。
通過運行設備控制應用程序,實現(xiàn)對ModBus或IEC104設備的控制。運行設備控制程序后,就可以在“〉”提示符下輸入控制命令。下面分別對ModBus設備寫線圈、寫寄存器命令和對IEC104發(fā)起遙控命令,測試結(jié)果如圖9所示。
以第二條命令為例。第二條命令是實現(xiàn)對ModBus設備寄存器值的寫操作,即對1號設備地址為21的寄存器進行寫數(shù)值“12”操作,返回值為零,表明寫寄存器操作執(zhí)行成功。為了驗證命令的執(zhí)行情況,通過對比模擬器在執(zhí)行命令的前后狀態(tài),可以發(fā)現(xiàn)地址為21的寄存器值發(fā)生相應的變化,如圖10所示。
5 總結(jié)
本文設計了一種智能電網(wǎng)監(jiān)控與安全傳輸系統(tǒng),采用與TCP/IP協(xié)議結(jié)合緊密的ModBus和IEC104協(xié)議進行數(shù)據(jù)采集,便于數(shù)據(jù)傳輸,并在系統(tǒng)中引入斷線自動重連機制,完善系統(tǒng)功能。為了確保和提高批量數(shù)據(jù)傳輸過程中的安全性與實時性,有效結(jié)合SM4加密算法與GPU并行計算,提出基于GPU并行計算的SM4加解密基本架構(gòu)?,F(xiàn)場實驗測試表明,系統(tǒng)運行狀況良好,可有效提高數(shù)據(jù)傳輸時的安全性與實時性,最終,實現(xiàn)對設備數(shù)據(jù)進行實時采集與并行加密傳輸?shù)墓δ?,為工業(yè)監(jiān)控系統(tǒng)提供了核心模塊。
參考文獻
[1] 劉漢宇,牟龍華.微電網(wǎng)CPS體系架構(gòu)及其物理端研究[J].電力自動化設備,2012,32(5):34-37.
[2] 徐琳,溫蜜,李晉國.智能配電網(wǎng)中具有隱私保護的數(shù)據(jù)安全認證方案[J].電子技術(shù)應用,2015(12):98-101.
[3] 金德剛,吳自然,吳桂初.基于Modbus/TCP的數(shù)字式電流互感器設計[J].電子技術(shù)應用,2014,40(6):93-95.
[4] 高秀蘭.基于Modbus TCP/IP通訊綜合監(jiān)控系統(tǒng)的實現(xiàn)[J].儀表技術(shù)與傳感器,2015(10):104-106.
[5] 陶學軍,徐奉友,王艷領.IEC 60870-5-104協(xié)議在光伏電站中的應用[J].機電工程技術(shù),2014(3):40-44.
[6] 馬曉紅,管荑,林祺蓉.104規(guī)約在調(diào)度自動化系統(tǒng)中的應用[J].山東電力技術(shù),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].蘇統(tǒng)華,李東,譯.北京:機械工業(yè)出版社,2014.