趙 航, 包西勇, 薛 瑋, 馬樹亮
(山東省交通規劃設計院集團有限公司,濟南 250031)
高速公路智慧服務區建筑設備物聯網中的用電設備可連接到網絡,實現服務區設備狀態信息以及環境參數等海量數據的獲取與共享[1]。隨著服務區用戶群體越來越龐大,數據的傳輸安全逐漸受到人們的重視,物聯網隱私保護和通信過程中數據安全已成為智慧服務區物聯網中亟待解決的重要問題[2]。然而,當前智慧服務區物聯網其安全方面的研究仍處于宏觀上的框架性理論研究階段,有效、可靠的實際應用相對較少[3]。本文選用輕量級加密算法對物聯網智能節點的無線通信數據加密進行了深入的研究與設計,并對數據加密系統做了一系列性能測試,主要有物聯網智能節點數據加密程序移植及可靠性測試、系統應用測試等,最后在實驗室環境下進行實際應用,實現了物聯網智能節點的通信數據加密。
智慧服務區物聯網智能節點主要功能是實現以太網通信協議與無線網通信協議的轉換。物聯網智能節點與服務器及上層采用以太網通信協議,與底層終端模塊通信采用無線通信協議[4]。物聯網智能節點可接收上層數據庫服務器、Web服務器的操作指令,對底層終端設備模塊進行相應控制;同時,物聯網智能節點可將底層終端設備模塊上行的數據,傳送至數據庫服務器、Web服務器,并對接收的底層終端設備模塊的數據進行處理。因此,物聯網智能節點是智慧服務區物聯網系統的核心設備。
在信息安全與隱私保護越來越受重視的今天,密碼學的研究與發展更是日新月異,當前密碼算法根據密鑰不同主要分為對稱密鑰系統與公鑰密鑰系統。當前使用廣泛的對稱密鑰系統有DES、IDEA以及RC2、RC4、RC5等,公鑰密鑰系統有橢圓曲線密碼系統(ECC)、Diffie-Hellman以及離散對數密碼系統等[5-6]。本文所研究的物聯網智能節點以及底層終端設備由于其運算處理能力相對較弱、存儲空間也較小,因資源空間限制,物聯網智能節點通信加密技術需采用易實現、安全系數高、穩定可靠、適合復雜信息環境下使用的輕量級加密技術[7]。
DES加密算法是當今使用范圍最廣和最流行的對稱加密算法,由于其運算速度快、實現簡單、計算量小,適合于資源空間受限的物聯網智能節點以及底層終端設備的數據加密,能夠實現物聯網的信息安全與隱私保護。算法的核心是采用數輪迭代方式,其實質是代替與換位系統的復雜組合。因此選用DES加密算法作為實現物聯網智能節點數據加密的解決方案。
DES加密算法是有效密鑰 56位、明文分組64位、輸出密文64位、需16輪迭代運算的分組對稱密碼算法[8]。
數據進行DES加密時首先將數據包前64位的明文經初始置換陣IP后進行明文組重排,并分為左右各32位的兩部分;然后進行非線性的乘積變換運算,輸出一個64位數組;最后,經由逆初始置換陣IP-1得到64位的密文,接著再進行下一個64位的明文加密,直到完成數據包的所有數據加密。
通過對物聯網智能節點獲取的數據及通信協議的分析,在保證數據安全的前提下,為了物聯網智能節點良好的反應速度與性能,本文數據加密時,依據數據的優先級,只針對關鍵數據進行加密。
底層終端模塊與物聯網智能節點間通信協議結構如表1所示。

終端模塊與物聯網智能節點間通信協議結構 表1
其中上行時源節點ID為底層終端模塊ID,表示該幀數據是哪個模塊發送來的,共4個字節,高字節在前,目的節點ID為要把信息發送至哪個智能節點。
服務器與物聯網智能節點間通信協議結構如表2所示。

服務器與物聯網智能節點間通信協議結構圖 表2
其中節點ID為物聯網智能節點ID,共4個字節,高字節在前;對象ID為底層終端模塊ID,占4個字節,對象數據為層終端模塊數據來自或發送至哪個對象。
通信協議包的不同類別主要是通過幀類別來分類的,幀類別AAH、BBH為注冊命令包,幀類別11H、33H為控制命令包,幀類別A0H為查詢命令包,幀類別22H為狀態信息包,幀類別12H為閾值警報包
本文需要加密的通信協議為注冊命令包、控制指令包、閾值警報包。
DES加密算法在物聯網智能節點生成密文步驟如下:設初始用m表示64位明文。
(1)m的各位置經初始置換陣IP后明文組重排得到m0=IP(m),記為m0=L0R0,L0為m0的前32位,R0為m0的后32位。
(2)對1≤i≤16,執行下述操作:
Li=Ri-1
Ri=Li-1⊕f(Ri-1,Ki)
Ki是密鑰K的一個48位字串,f是加密函數。
(3)64位數組左右交換得到R16L16,再經由逆初始置換陣IP-1得到64位的密文,記為c= IP-1(R16L16)。以注冊命令包為例,底層終端模塊先對注冊命令包從幀類別之后的數據開始加密,加密完成后密文廣播發送;物聯網智能節點接收到數據包后,先判斷目的地址是否為本節點,然后再進行幀類別的判斷,若是為AAH,則是注冊命令包,然后對幀類別之后的數據進行解密,得到解密后的數據,物聯網智能節點再對數據進行相應的操作處理,加密與解密流程圖如圖1所示。
本文對物聯網智能節點與終端模塊及服務器間通信分別進行可靠性測試及系統應用測試。通過計算機、無線路由器、物聯網智能節點、底層終端設備模塊、等相關實驗設備搭建了系統的硬件測試環境。

圖1 加密與解密流程圖
物聯網智能節點控制采用STM32F103xx芯片,系統工作頻率36MHz,倍頻可提升至72MHz[9]。STM32最小系統如圖2所示。

圖2 STM32最小系統圖
3.2.1 數據加密程序可靠性測試
可靠性的測試內容:數據加密正確性測試;數據加密程序執行測試。
(1)數據加密正確性測試
測試步驟:1)物聯網智能節點與計算機連接并進行程序下載;2)通過計算機向物聯網智能節點發送明文數據,經加密后將密文傳回,串口調試工具接收并顯示;3)物聯網智能節點密文通過串口調試工具發送。
(2)數據加密程序執行時間測試
DES 加密算法由系統對數據加密與解密的速度來體現其性能,基本表達式如式(1)所示[10]。

系統時鐘頻率
(1)
本文物聯網智能節點加/解密速度為144Mbit/s。
物聯網智能節點控制器,系統工作頻率36MHz,其通用定時器TIM2,掛載在APB1時鐘總線上,工作頻率為系統時鐘頻率2倍,所以TIM2時鐘源為72MHz。
本次測試設置TIM2預分頻為719,TIM2單次計數周期由式(2)得:
TCNT=(719+1)/72MHz=10μs
(2)
設置TIM2比較匹配計數遞增值為10,TIM2中斷請求事件間隔由式(3)得:
TCHN=10X10μs=100μs
(3)
根據物聯網智能節點數據加密軟件設計的相關要求,數據加密程序執行時間測試。測試步驟:(1)物聯網智能節點進行程序下載;(2)物聯網智能節點開啟定時器,TIM2使能;(3)物聯網智能節點執行數據加密程序,TIM2中斷請求,count計數中斷次數;(4)物聯網智能節點關閉定時器,TIM2失能,根據TIM2計數與時鐘頻率計算數據加密程序執行時間。
3.2.2 物聯網智能節點數據加密系統應用測試
測試底層終端設備模塊選用物聯網智能插座。
測試步驟:(1)智能插座先向物聯網智能節點進行注冊;(2)通過計算機發送加密控制指令至物聯網智能節點,在接收到控制指令后,物聯網節點對指令解密并進行處理,將處理后的控制指令再進行加密并通過無線發送至智能插座;(3)智能插座接收到加密指令后,先進行數據解密然后對控制指令進行處理,控制智能插座的繼電器吸合以及斷開。
(1)數據加密正確性測試結果:如表1所示(部分)。

DES加密算法移植程序測試結果(部分) 表1
測試 1、2為主密鑰相同,加密、解密數據不同;測試3、4為主密鑰不同,加密、解密數據相同;測試5、6為主密鑰不同,加密、解密數據不同。所得結果與DES 標準加密程序結果比對后得出DES數據加密算法程序移植到物聯網智能節點后一切工作正常,能夠實現可靠的加密、解密功能。
(2)數據加密程序執行時間測試結果
定時器TIM2中斷次數計數count=47,所以物聯網智能節點使用STM32F103xx芯片作為控制器時,數據加密程序執行時間由式(4)得:
T0=47×TCHN=47×100μs=4.7ms
(4)
因此,物聯網智能節點數據加密程序執行時間T0=4.7ms,物聯網智能節點數據加密程序不會因執行時間對物聯網系統整體性能產生影響。
(3)系統應用測試結果:物聯網智能節點接收經過加密的開啟控制指令,接收后物聯網節點對指令解密并處理,處理后加密發送至智能插座并返回指令包,智能插座繼電器吸合,發送、接收的指令如圖3所示。經反復應用調試,此系統可穩定可靠運行。

圖3 物聯網智能節點接收開啟指令
通過智慧服務區物聯網中的物聯網智能節點,服務區建筑物內來自底層終端模塊的海量數據可以方便的聯入網絡實現信息收集。選用DES加密算法物聯網智能節點與終端模塊及數據服務器間的通信過程中關鍵數據加密。經測試,加密結果準確可靠,加密程序執行時間4.7ms,滿足智慧服務區建筑設備物聯網系統的整體性能。
