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