郭 晶, 季愛明
(蘇州大學 城市軌道交通學院, 江蘇 蘇州 215137)
隨著智能電網技術的發展,配電自動化系統規模日益擴大,多種通信方式并存及所有報文均采用明文傳輸的通信方式導致系統受到各種網絡攻擊的風險較大[1]。 加上配變終端安裝位置分布廣,地點分散,形成了設備數量多、運行環境惡劣等特點,部分地區存在搭接、偽造等接入電力信息網的安全風險。 為了保證配電自動化系統的信息傳輸安全,必須采用高效可靠的加密措施進行數據安全防護[2]。
在供電電壓自動采集系統中,電壓監測儀作為電壓測量終端,將通過GPRS 網絡,采用TCP 協議,基于無線虛擬專網方式與CAC 之間進行數據通信,系統如圖1 所示。
數據的保密性直接取決于所采用的加密方式、 密碼算法[3]。 目前常用的加密方式有軟加密和硬加密兩種,軟加密不依靠特別的硬件設備,通過在程序中嵌入特定的軟件加解密包實現加解密,這種方案具有實現方便、兼容性好等優點,但密鑰管理難、程序易被跟蹤破解。 硬加密則采用專用加密芯片等硬件設備在鏈路層對數據進行加解密, 其保密性強、加解密速度快。 加密算法則可分為對稱密鑰算法以及非對稱密鑰算法兩類。 對稱密鑰算法速度快,密鑰不宜維護;非對稱密鑰算法速度慢,密鑰便于維護[4]。 由此組合成的加密方案特性見表1。

表1 不同加密方案特性表Tab. 1 Features of different encryption systems
安全高效的加密系統經常用對稱秘鑰算法加密大塊的數據,用非對稱秘鑰算法對密鑰進行管理、生成數字簽名,這種混合加密機制使非對稱算法和對稱算法的優勢充分發揮,既保證了數據安全又提高了效率[5]。 因此在硬件上實現混合加密機制的安全防護方案可以大大提高加密系統的安全和效率。

圖1 供電電壓采集系統Fig. 1 Diagram of supply voltage acquisition system
NRSEC3000 是南瑞公司自主研發用于電網信息安全防護的專用加密芯片,實現了國家商用密碼產品所需的SM1 對稱算法、SM2 非對稱算法、SM3 雜湊算法等專用加密模塊。 同時擁有ISO7816 和SPI 接口并支持多種通信速率, 所提供的包括電壓、頻率檢測機制,程序和數據加密存儲以及代碼保護等安全機制,可有效對抗物理攻擊、剖片探測[6]。 基于NRSEC3000 芯片的SM1、SM2 算法可以較方便的地實現混合加密機制,構造出安全、高效的密碼系統,可用于對信息安全有較高要求的應用場合。
NRSEC3000 安全芯片通信采用 “一問一答” 方式,即MCU 發送命令給NRSEC3000 芯片,NRSEC3000 芯片返回應答結果[7]。 芯片支持的每個算法功能都是由一個或多個交互過程完成的,這些交互過程可以分為四種形式:
1)MCU 向芯片發送命令頭CMD, 芯片返回應答狀態字SW。
2)MCU 向芯片發送命令頭CMD, 芯片返回數據和應答狀態字SW。
3)MCU 向芯片發送命令頭CMD 和數據, 芯片返回應答狀態字SW。
4)MCU 向芯片發送命令頭CMD 和數據, 芯片返回數據和應答狀態字SW。
其中CMD 命令頭決定了本次芯片調用的功能與具體操作參數, 由5 個字節組成, 分別是CLA 指令類別,INS 指令碼,P1 參數1,P2 參數2,P3 參數3。 狀態字SW 標志本次芯片功能調用是否成功,由2 個字節組成,若收到的SW 依次為0x90、0x00,則表示成功,其他則表示失敗。
圖2 是NRSEC3000 加密芯片在電壓監測儀中的應用電路原理圖。

圖2 NRSEC3000 應用電路原理圖Fig. 2 Application circuit schematics of NRSEC3000
圖2 中NRSEC3000 與微處理器的接口為SPI 總線,通信主端可采用SPI 模式3(CPOL=1、CPHA=1),時鐘頻率33MHz,中斷模式處理數據收發。 電壓監測儀通過電壓采集模塊獲得電壓數據后,由加密芯片NRSEC3000 加密成密文,處理器獲得該電壓密文并通過GPRS 通信接口發送給遠方主站。
通過圖2 所示的硬件電路,遵循如前所述的芯片操作流程,本文成功實現了NRSEC3000 芯片的底層驅動, 并將各算法功能封裝成單獨的函數方便調用。由于篇幅所限,圖3 僅給出芯片SM1 加密函數的軟件操作流程(數據以十六進制表示)。
在圖3 中,MCU 發送的5 字節命令頭由a0 e0 80 p2 p3組成, 其中a0 e0 表示SM1 功能指令,80 表示加密,p2 p3 表示待加密數據的長度,p2 為高字節,p3 為低字節。發送aa..表示持續發送aa,直到接收到需要的字符;收到..e0 表示持續接收,直到收到的字符為e0。第一次接收到e0 表示芯片已經確認本次調用的功能為SM1 加密, 第二次接收到e0 表示芯片已經確認收到加密數據,最后接收到狀態字90 00,標志SM1加密操作成功。

圖3 SM1 加密函數流程圖Fig. 3 Flowchart of SM1 encryption function
CAC 是供電電壓自動采集系統的重要組成部分,在系統中發揮承上啟下的樞紐作用[8]。 當電壓監測終端接入CAC 之前,需要進行3 個準備工作,它們是:1)硬件初始化,生成SM2 密鑰對;2)生成安全芯片的證書請求并提交證書簽發機構;3)將簽發出的終端自身證書及主站公鑰保存本地。 終端的密鑰對與最后簽發出來的證書是一一對應的,如果重新生成密鑰對,則終端原來簽發的證書將失效,因此上述準備工作只需要在第一次安全接入之前做一次。

圖4 秘鑰協商軟件流程Fig. 4 Flowchart of key agreement software
完成準備工作,終端將連入GPRS 無線專網與CAC 進行密鑰協商,只有雙方通過身份認證,才能進行后續的數據通信。 按照報文數據的發送方向與處理過程,整個秘鑰協商可分3 個步驟, 第一步終端側向CAC 發送秘鑰協商請求報文A;第二步CAC 側對報文A 解密,向終端發送秘鑰協商應答報文B;第三步終端側對報文B 解密,向CAC 發送秘鑰協商確認報文C, 具體的軟件流程圖如圖4 所示。 圖4 中報文幀A、報文幀B、報文幀C 的數據結構如下:
//密鑰協商請求報文結構
typedef struct KeyDigReq_Packet_s {
unsigned char type; /* 類型*/
unsigned char s_type; /* 子類*/
unsigned short packetLen; /* 幀長度*/
unsigned char ver_0; /* 版本號*/
unsigned char ver_1; /* 版本號*/
unsigned short sn; /* 序列號*/
unsigned char sim[16]; /*SIM 卡號*/
unsigned char dev_id[18]; /* 裝置ID*/
unsigned char *pcert; /* 數字證書指針*/
unsigned char eRand[128]; /* 加密隨機數*/
unsigned char sign[64]; /* 簽名*/
} KeyDigReq_Packet_t;
//密鑰協商請求應答報文結構
typedef struct KeyDigReq_PacketAck_s {
unsigned char type; /* 類型*/
unsigned char s_type; /* 子類型*/
unsigned short packetLen; /* 幀長度*/
unsigned short sn; /* 序列號*/
unsigned char eRand[128]; /* 加密隨機數*/
unsigned char sign[64]; /* 簽名*/
} KeyDigReq_PacketAck_t;
//密鑰協商確認報文結構
typedef struct KeyDigReq_PacketAssure_s {
unsigned char type; /* 類型*/
unsigned char s_type; /* 子類型*/
unsigned short packetLen; /* 幀長度*/
unsigned short sn; /* 序列號*/
unsigned char auth[146]; /* 安全認證*/
unsigned char sessionKeyHash [32]; /* 會 話 密 鑰HASH*/
} KeyDigReq_PacketAssure_t;
在協商好會話密鑰,進行數據通信的時候,需要對應用層的數據報文用SM1 對稱算法進行加解密。 先對原始數據報文填充1-16 字節,使其長度為16 的倍數,對填充后的原始報文和填充報文使用之前協商好的會話密鑰DK 進行加密即可。
在實現無線加密功能的基礎上,采用LM3S9B96 作為微處理器成功研制了電壓監測儀樣機,從電壓采集、通訊模塊、人機接口、數據存儲、電源管理等方面設計了系統硬件結構,軟件以實時操作系統SAFERTOS 為核心進行任務劃分與調度,如圖5 所示。

圖5 電壓監測儀樣機Fig. 5 Prototype of voltage monitor
經測試, 電壓監測儀通過NRSEC3000 加密芯片可以成功接入CAC,并進行數據傳輸。 表2 給出了終端發送心跳加密報文的相關數據。

表2 心跳報文數據Tab. 2 Heartbeat packet data
本文詳細說明了NRSEC3000 加密芯片的工作原理與操作方法, 在編寫NRSEC3000 底層驅動的基礎上, 利用NRSEC3000 芯片的SM1、SM2 等算法功能, 實現了基于混合加密機制的通信協議, 有效提高了加密系統的效率與安全。此基礎上研制的電壓監測儀樣機成功接入遠方CAC,定時將電壓數據加密上傳,為供電電壓采集系統中電力信息的安全傳輸提供了有力保障。 NRSEC3000 加密芯片性能可靠,相應的軟硬件改造簡單方便,因此在電壓監測儀安全防護中具有廣闊的應用前景。
[1] 張志華,周捷,丁可. 非對稱數字簽名技術在配電自動化系統的應用[J]. 電氣自動化,2012,34(3):39-41.
ZHANG Zhi-hua,ZHOU Jie,DING Ke. The applications of asymmetric encryption of digital signature technology in distribution automation system[J]. Electric Automation,2012,34(3):39-41.
[2] Q/GDW 1819—2012《電壓監測裝置技術規范》[S].國家電網公司,2013.
[3] (美)帕爾著.深入淺出密碼學 常用加密技術原理與應用[M].北京:清華大學出版社,2012.
[4] 俞經善,王晶,楊龍. 基于ECC和AES相結合的加密系統的實現[J]. 信息技術,2006(2):44-46.
YU Jing-shan,WANG Jing,YANG Chuan-long. The realization of encryption system based on ECC and AES[J].Information Technology,2006(2):44-46.
[5] 王紅珍, 李竹林. 基于AES和ECC的混合加密系統的設計與實現[J]. 電子設計工程,2012,20(4):9-11.
WANG Hong-zhen,LI Zhu-lin. Design and realization of mixed encrypted system based on AES and ECC [J].Electronic Design Engineering,2012,20(4):9-11.
[6] 南瑞信通. 安全芯片NRSEC3000硬件使用手冊v1.5 [Z].2013.7.
[7] 南瑞信通. NRSEC3000安全芯片編程手冊v2.0 [Z]. 2013.
[8] 南瑞信通.采集類終端的安全防護v1.7 [Z]. 2013.7.