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