趙 航, 包西勇, 薛 瑋, 馬樹亮
(山東省交通規(guī)劃設(shè)計(jì)院集團(tuán)有限公司,濟(jì)南 250031)
高速公路智慧服務(wù)區(qū)建筑設(shè)備物聯(lián)網(wǎng)中的用電設(shè)備可連接到網(wǎng)絡(luò),實(shí)現(xiàn)服務(wù)區(qū)設(shè)備狀態(tài)信息以及環(huán)境參數(shù)等海量數(shù)據(jù)的獲取與共享[1]。隨著服務(wù)區(qū)用戶群體越來越龐大,數(shù)據(jù)的傳輸安全逐漸受到人們的重視,物聯(lián)網(wǎng)隱私保護(hù)和通信過程中數(shù)據(jù)安全已成為智慧服務(wù)區(qū)物聯(lián)網(wǎng)中亟待解決的重要問題[2]。然而,當(dāng)前智慧服務(wù)區(qū)物聯(lián)網(wǎng)其安全方面的研究仍處于宏觀上的框架性理論研究階段,有效、可靠的實(shí)際應(yīng)用相對較少[3]。本文選用輕量級加密算法對物聯(lián)網(wǎng)智能節(jié)點(diǎn)的無線通信數(shù)據(jù)加密進(jìn)行了深入的研究與設(shè)計(jì),并對數(shù)據(jù)加密系統(tǒng)做了一系列性能測試,主要有物聯(lián)網(wǎng)智能節(jié)點(diǎn)數(shù)據(jù)加密程序移植及可靠性測試、系統(tǒng)應(yīng)用測試等,最后在實(shí)驗(yàn)室環(huán)境下進(jìn)行實(shí)際應(yīng)用,實(shí)現(xiàn)了物聯(lián)網(wǎng)智能節(jié)點(diǎn)的通信數(shù)據(jù)加密。
智慧服務(wù)區(qū)物聯(lián)網(wǎng)智能節(jié)點(diǎn)主要功能是實(shí)現(xiàn)以太網(wǎng)通信協(xié)議與無線網(wǎng)通信協(xié)議的轉(zhuǎn)換。物聯(lián)網(wǎng)智能節(jié)點(diǎn)與服務(wù)器及上層采用以太網(wǎng)通信協(xié)議,與底層終端模塊通信采用無線通信協(xié)議[4]。物聯(lián)網(wǎng)智能節(jié)點(diǎn)可接收上層數(shù)據(jù)庫服務(wù)器、Web服務(wù)器的操作指令,對底層終端設(shè)備模塊進(jìn)行相應(yīng)控制;同時,物聯(lián)網(wǎng)智能節(jié)點(diǎn)可將底層終端設(shè)備模塊上行的數(shù)據(jù),傳送至數(shù)據(jù)庫服務(wù)器、Web服務(wù)器,并對接收的底層終端設(shè)備模塊的數(shù)據(jù)進(jìn)行處理。因此,物聯(lián)網(wǎng)智能節(jié)點(diǎn)是智慧服務(wù)區(qū)物聯(lián)網(wǎng)系統(tǒng)的核心設(shè)備。
在信息安全與隱私保護(hù)越來越受重視的今天,密碼學(xué)的研究與發(fā)展更是日新月異,當(dāng)前密碼算法根據(jù)密鑰不同主要分為對稱密鑰系統(tǒng)與公鑰密鑰系統(tǒng)。當(dāng)前使用廣泛的對稱密鑰系統(tǒng)有DES、IDEA以及RC2、RC4、RC5等,公鑰密鑰系統(tǒng)有橢圓曲線密碼系統(tǒng)(ECC)、Diffie-Hellman以及離散對數(shù)密碼系統(tǒng)等[5-6]。本文所研究的物聯(lián)網(wǎng)智能節(jié)點(diǎn)以及底層終端設(shè)備由于其運(yùn)算處理能力相對較弱、存儲空間也較小,因資源空間限制,物聯(lián)網(wǎng)智能節(jié)點(diǎn)通信加密技術(shù)需采用易實(shí)現(xiàn)、安全系數(shù)高、穩(wěn)定可靠、適合復(fù)雜信息環(huán)境下使用的輕量級加密技術(shù)[7]。
DES加密算法是當(dāng)今使用范圍最廣和最流行的對稱加密算法,由于其運(yùn)算速度快、實(shí)現(xiàn)簡單、計(jì)算量小,適合于資源空間受限的物聯(lián)網(wǎng)智能節(jié)點(diǎn)以及底層終端設(shè)備的數(shù)據(jù)加密,能夠?qū)崿F(xiàn)物聯(lián)網(wǎng)的信息安全與隱私保護(hù)。算法的核心是采用數(shù)輪迭代方式,其實(shí)質(zhì)是代替與換位系統(tǒng)的復(fù)雜組合。因此選用DES加密算法作為實(shí)現(xiàn)物聯(lián)網(wǎng)智能節(jié)點(diǎn)數(shù)據(jù)加密的解決方案。
DES加密算法是有效密鑰 56位、明文分組64位、輸出密文64位、需16輪迭代運(yùn)算的分組對稱密碼算法[8]。
數(shù)據(jù)進(jìn)行DES加密時首先將數(shù)據(jù)包前64位的明文經(jīng)初始置換陣IP后進(jìn)行明文組重排,并分為左右各32位的兩部分;然后進(jìn)行非線性的乘積變換運(yùn)算,輸出一個64位數(shù)組;最后,經(jīng)由逆初始置換陣IP-1得到64位的密文,接著再進(jìn)行下一個64位的明文加密,直到完成數(shù)據(jù)包的所有數(shù)據(jù)加密。
通過對物聯(lián)網(wǎng)智能節(jié)點(diǎn)獲取的數(shù)據(jù)及通信協(xié)議的分析,在保證數(shù)據(jù)安全的前提下,為了物聯(lián)網(wǎng)智能節(jié)點(diǎn)良好的反應(yīng)速度與性能,本文數(shù)據(jù)加密時,依據(jù)數(shù)據(jù)的優(yōu)先級,只針對關(guān)鍵數(shù)據(jù)進(jìn)行加密。
底層終端模塊與物聯(lián)網(wǎng)智能節(jié)點(diǎn)間通信協(xié)議結(jié)構(gòu)如表1所示。
終端模塊與物聯(lián)網(wǎng)智能節(jié)點(diǎn)間通信協(xié)議結(jié)構(gòu) 表1
其中上行時源節(jié)點(diǎn)ID為底層終端模塊ID,表示該幀數(shù)據(jù)是哪個模塊發(fā)送來的,共4個字節(jié),高字節(jié)在前,目的節(jié)點(diǎn)ID為要把信息發(fā)送至哪個智能節(jié)點(diǎn)。
服務(wù)器與物聯(lián)網(wǎng)智能節(jié)點(diǎn)間通信協(xié)議結(jié)構(gòu)如表2所示。
服務(wù)器與物聯(lián)網(wǎng)智能節(jié)點(diǎn)間通信協(xié)議結(jié)構(gòu)圖 表2
其中節(jié)點(diǎn)ID為物聯(lián)網(wǎng)智能節(jié)點(diǎn)ID,共4個字節(jié),高字節(jié)在前;對象ID為底層終端模塊ID,占4個字節(jié),對象數(shù)據(jù)為層終端模塊數(shù)據(jù)來自或發(fā)送至哪個對象。
通信協(xié)議包的不同類別主要是通過幀類別來分類的,幀類別AAH、BBH為注冊命令包,幀類別11H、33H為控制命令包,幀類別A0H為查詢命令包,幀類別22H為狀態(tài)信息包,幀類別12H為閾值警報(bào)包
本文需要加密的通信協(xié)議為注冊命令包、控制指令包、閾值警報(bào)包。
DES加密算法在物聯(lián)網(wǎng)智能節(jié)點(diǎn)生成密文步驟如下:設(shè)初始用m表示64位明文。
(1)m的各位置經(jīng)初始置換陣IP后明文組重排得到m0=IP(m),記為m0=L0R0,L0為m0的前32位,R0為m0的后32位。
(2)對1≤i≤16,執(zhí)行下述操作:
Li=Ri-1
Ri=Li-1⊕f(Ri-1,Ki)
Ki是密鑰K的一個48位字串,f是加密函數(shù)。
(3)64位數(shù)組左右交換得到R16L16,再經(jīng)由逆初始置換陣IP-1得到64位的密文,記為c= IP-1(R16L16)。以注冊命令包為例,底層終端模塊先對注冊命令包從幀類別之后的數(shù)據(jù)開始加密,加密完成后密文廣播發(fā)送;物聯(lián)網(wǎng)智能節(jié)點(diǎn)接收到數(shù)據(jù)包后,先判斷目的地址是否為本節(jié)點(diǎn),然后再進(jìn)行幀類別的判斷,若是為AAH,則是注冊命令包,然后對幀類別之后的數(shù)據(jù)進(jìn)行解密,得到解密后的數(shù)據(jù),物聯(lián)網(wǎng)智能節(jié)點(diǎn)再對數(shù)據(jù)進(jìn)行相應(yīng)的操作處理,加密與解密流程圖如圖1所示。
本文對物聯(lián)網(wǎng)智能節(jié)點(diǎn)與終端模塊及服務(wù)器間通信分別進(jìn)行可靠性測試及系統(tǒng)應(yīng)用測試。通過計(jì)算機(jī)、無線路由器、物聯(lián)網(wǎng)智能節(jié)點(diǎn)、底層終端設(shè)備模塊、等相關(guān)實(shí)驗(yàn)設(shè)備搭建了系統(tǒng)的硬件測試環(huán)境。
圖1 加密與解密流程圖
物聯(lián)網(wǎng)智能節(jié)點(diǎn)控制采用STM32F103xx芯片,系統(tǒng)工作頻率36MHz,倍頻可提升至72MHz[9]。STM32最小系統(tǒng)如圖2所示。
圖2 STM32最小系統(tǒng)圖
3.2.1 數(shù)據(jù)加密程序可靠性測試
可靠性的測試內(nèi)容:數(shù)據(jù)加密正確性測試;數(shù)據(jù)加密程序執(zhí)行測試。
(1)數(shù)據(jù)加密正確性測試
測試步驟:1)物聯(lián)網(wǎng)智能節(jié)點(diǎn)與計(jì)算機(jī)連接并進(jìn)行程序下載;2)通過計(jì)算機(jī)向物聯(lián)網(wǎng)智能節(jié)點(diǎn)發(fā)送明文數(shù)據(jù),經(jīng)加密后將密文傳回,串口調(diào)試工具接收并顯示;3)物聯(lián)網(wǎng)智能節(jié)點(diǎn)密文通過串口調(diào)試工具發(fā)送。
(2)數(shù)據(jù)加密程序執(zhí)行時間測試
DES 加密算法由系統(tǒng)對數(shù)據(jù)加密與解密的速度來體現(xiàn)其性能,基本表達(dá)式如式(1)所示[10]。
系統(tǒng)時鐘頻率
(1)
本文物聯(lián)網(wǎng)智能節(jié)點(diǎn)加/解密速度為144Mbit/s。
物聯(lián)網(wǎng)智能節(jié)點(diǎn)控制器,系統(tǒng)工作頻率36MHz,其通用定時器TIM2,掛載在APB1時鐘總線上,工作頻率為系統(tǒng)時鐘頻率2倍,所以TIM2時鐘源為72MHz。
本次測試設(shè)置TIM2預(yù)分頻為719,TIM2單次計(jì)數(shù)周期由式(2)得:
TCNT=(719+1)/72MHz=10μs
(2)
設(shè)置TIM2比較匹配計(jì)數(shù)遞增值為10,TIM2中斷請求事件間隔由式(3)得:
TCHN=10X10μs=100μs
(3)
根據(jù)物聯(lián)網(wǎng)智能節(jié)點(diǎn)數(shù)據(jù)加密軟件設(shè)計(jì)的相關(guān)要求,數(shù)據(jù)加密程序執(zhí)行時間測試。測試步驟:(1)物聯(lián)網(wǎng)智能節(jié)點(diǎn)進(jìn)行程序下載;(2)物聯(lián)網(wǎng)智能節(jié)點(diǎn)開啟定時器,TIM2使能;(3)物聯(lián)網(wǎng)智能節(jié)點(diǎn)執(zhí)行數(shù)據(jù)加密程序,TIM2中斷請求,count計(jì)數(shù)中斷次數(shù);(4)物聯(lián)網(wǎng)智能節(jié)點(diǎn)關(guān)閉定時器,TIM2失能,根據(jù)TIM2計(jì)數(shù)與時鐘頻率計(jì)算數(shù)據(jù)加密程序執(zhí)行時間。
3.2.2 物聯(lián)網(wǎng)智能節(jié)點(diǎn)數(shù)據(jù)加密系統(tǒng)應(yīng)用測試
測試底層終端設(shè)備模塊選用物聯(lián)網(wǎng)智能插座。
測試步驟:(1)智能插座先向物聯(lián)網(wǎng)智能節(jié)點(diǎn)進(jìn)行注冊;(2)通過計(jì)算機(jī)發(fā)送加密控制指令至物聯(lián)網(wǎng)智能節(jié)點(diǎn),在接收到控制指令后,物聯(lián)網(wǎng)節(jié)點(diǎn)對指令解密并進(jìn)行處理,將處理后的控制指令再進(jìn)行加密并通過無線發(fā)送至智能插座;(3)智能插座接收到加密指令后,先進(jìn)行數(shù)據(jù)解密然后對控制指令進(jìn)行處理,控制智能插座的繼電器吸合以及斷開。
(1)數(shù)據(jù)加密正確性測試結(jié)果:如表1所示(部分)。
DES加密算法移植程序測試結(jié)果(部分) 表1
測試 1、2為主密鑰相同,加密、解密數(shù)據(jù)不同;測試3、4為主密鑰不同,加密、解密數(shù)據(jù)相同;測試5、6為主密鑰不同,加密、解密數(shù)據(jù)不同。所得結(jié)果與DES 標(biāo)準(zhǔn)加密程序結(jié)果比對后得出DES數(shù)據(jù)加密算法程序移植到物聯(lián)網(wǎng)智能節(jié)點(diǎn)后一切工作正常,能夠?qū)崿F(xiàn)可靠的加密、解密功能。
(2)數(shù)據(jù)加密程序執(zhí)行時間測試結(jié)果
定時器TIM2中斷次數(shù)計(jì)數(shù)count=47,所以物聯(lián)網(wǎng)智能節(jié)點(diǎn)使用STM32F103xx芯片作為控制器時,數(shù)據(jù)加密程序執(zhí)行時間由式(4)得:
T0=47×TCHN=47×100μs=4.7ms
(4)
因此,物聯(lián)網(wǎng)智能節(jié)點(diǎn)數(shù)據(jù)加密程序執(zhí)行時間T0=4.7ms,物聯(lián)網(wǎng)智能節(jié)點(diǎn)數(shù)據(jù)加密程序不會因執(zhí)行時間對物聯(lián)網(wǎng)系統(tǒng)整體性能產(chǎn)生影響。
(3)系統(tǒng)應(yīng)用測試結(jié)果:物聯(lián)網(wǎng)智能節(jié)點(diǎn)接收經(jīng)過加密的開啟控制指令,接收后物聯(lián)網(wǎng)節(jié)點(diǎn)對指令解密并處理,處理后加密發(fā)送至智能插座并返回指令包,智能插座繼電器吸合,發(fā)送、接收的指令如圖3所示。經(jīng)反復(fù)應(yīng)用調(diào)試,此系統(tǒng)可穩(wěn)定可靠運(yùn)行。
圖3 物聯(lián)網(wǎng)智能節(jié)點(diǎn)接收開啟指令
通過智慧服務(wù)區(qū)物聯(lián)網(wǎng)中的物聯(lián)網(wǎng)智能節(jié)點(diǎn),服務(wù)區(qū)建筑物內(nèi)來自底層終端模塊的海量數(shù)據(jù)可以方便的聯(lián)入網(wǎng)絡(luò)實(shí)現(xiàn)信息收集。選用DES加密算法物聯(lián)網(wǎng)智能節(jié)點(diǎn)與終端模塊及數(shù)據(jù)服務(wù)器間的通信過程中關(guān)鍵數(shù)據(jù)加密。經(jīng)測試,加密結(jié)果準(zhǔn)確可靠,加密程序執(zhí)行時間4.7ms,滿足智慧服務(wù)區(qū)建筑設(shè)備物聯(lián)網(wǎng)系統(tǒng)的整體性能。