姜 晶, 張 憲, 于云選, 唐勝武, 簡(jiǎn)榮坤
(中國(guó)電子科技集團(tuán)公司 第四十九研究所,黑龍江 哈爾濱 150001)
?
基于MD5算法的物聯(lián)網(wǎng)傳輸模塊設(shè)計(jì)
姜 晶, 張 憲, 于云選, 唐勝武, 簡(jiǎn)榮坤
(中國(guó)電子科技集團(tuán)公司 第四十九研究所,黑龍江 哈爾濱 150001)
依據(jù)網(wǎng)絡(luò)智能化傳感器的特點(diǎn),結(jié)合TCP/IP協(xié)議通信特點(diǎn),以MCF52236CAF50單片機(jī)為核心控制器,設(shè)計(jì)了一種基于物聯(lián)網(wǎng)功能可以將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的模塊,同時(shí)為了保證數(shù)據(jù)傳輸?shù)陌踩?,加入了信息—摘?MD5)加密算法,實(shí)現(xiàn)了信息在物聯(lián)網(wǎng)中的安全有效傳輸。
物聯(lián)網(wǎng); TCP/IP; MD5; 傳輸模塊
隨著物聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)、移動(dòng)互聯(lián)網(wǎng)等技術(shù)的進(jìn)一步發(fā)展,信息領(lǐng)域新產(chǎn)品、新服務(wù)大量涌現(xiàn),不斷激發(fā)新的消費(fèi)需求。我國(guó)物聯(lián)網(wǎng)產(chǎn)業(yè)的覆蓋面日益增大,而傳統(tǒng)的通信手段已不能滿足物聯(lián)網(wǎng)的數(shù)據(jù)傳輸及云計(jì)算平臺(tái)的需要,但改造傳統(tǒng)傳感器又不切實(shí)際,因此,將模擬數(shù)據(jù)轉(zhuǎn)換成符合物聯(lián)網(wǎng)框架結(jié)構(gòu)進(jìn)行數(shù)字傳輸?shù)哪K,即,物聯(lián)網(wǎng)傳輸模塊迫在眉睫。模塊可以對(duì)物聯(lián)網(wǎng)設(shè)備進(jìn)行接入和管理,并對(duì)上提供物聯(lián)網(wǎng)服務(wù),其中,最重要的是將其收集的基礎(chǔ)信息傳遞給大數(shù)據(jù)平臺(tái)等進(jìn)行大數(shù)據(jù)處理,同時(shí),可以進(jìn)一步推動(dòng)物聯(lián)網(wǎng)與云計(jì)算、大數(shù)據(jù)、移動(dòng)互聯(lián)網(wǎng)等新一代信息技術(shù)的融合創(chuàng)新,帶動(dòng)物聯(lián)網(wǎng)關(guān)鍵技術(shù)突破及產(chǎn)業(yè)規(guī)?;l(fā)展。
文本設(shè)計(jì)了基于物聯(lián)網(wǎng)功能的模/數(shù)信號(hào)轉(zhuǎn)換模塊,并加入了信息—摘要算法,實(shí)現(xiàn)了信息在物聯(lián)網(wǎng)中的安全有效傳輸。
物聯(lián)網(wǎng)傳輸模塊內(nèi)部結(jié)構(gòu)如圖1所示。
圖1 物聯(lián)網(wǎng)傳輸模塊內(nèi)部結(jié)構(gòu)
微處理單元選用MCF52236CAF50作為中央處理器,支持通過(guò)以太網(wǎng)收發(fā)數(shù)據(jù),符合RFC的TCP/IP堆棧,支持ARP,IP,ICMP,UDP,TCP,DHCP,BOOTP和TFTP等協(xié)議[1],由于其含有以太網(wǎng)控制器以及Ethernet PHY的10/100 Ethernet MAC,因此降低了系統(tǒng)成本,減少了設(shè)計(jì)中的組件數(shù)量,節(jié)約設(shè)計(jì)空間,有效縮小了模塊體積[2]。
設(shè)計(jì)過(guò)程主要分為4類:感知過(guò)程、激勵(lì)過(guò)程、接收過(guò)程、傳輸過(guò)程。1)感知過(guò)程:傳輸模塊從外界環(huán)境收集信息,對(duì)收集的信息作模/數(shù)轉(zhuǎn)換并提交給微處理單元對(duì)信息進(jìn)行處理;2)激勵(lì)過(guò)程:根據(jù)從外界環(huán)境收集的信息請(qǐng)求,控制系統(tǒng)進(jìn)行數(shù)據(jù)輸出,并對(duì)輸出結(jié)果進(jìn)行數(shù)/模轉(zhuǎn)換,將輸出信號(hào)傳輸給激勵(lì)裝置,從而對(duì)外界環(huán)境產(chǎn)生影響;3)接收過(guò)程:控制系統(tǒng)響應(yīng)主機(jī)發(fā)送的命令請(qǐng)求或者數(shù)據(jù)的過(guò)程;4)傳輸過(guò)程:主機(jī)通過(guò)通信設(shè)備發(fā)布傳輸模塊節(jié)點(diǎn)的當(dāng)前狀態(tài)信息,傳輸被請(qǐng)求數(shù)據(jù)給征訂者。通過(guò)上述4個(gè)過(guò)程,實(shí)現(xiàn)了模塊的主要功能,即對(duì)外部環(huán)境數(shù)據(jù)收發(fā),并將動(dòng)態(tài)采集的數(shù)據(jù)打包成標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行發(fā)送。
軟件設(shè)計(jì)主要包括初始化、A/D轉(zhuǎn)換、數(shù)據(jù)處理、打包加密、以太網(wǎng)驅(qū)動(dòng)以及數(shù)據(jù)傳輸?shù)饶K。其中,數(shù)據(jù)幀的打包封裝,以及數(shù)據(jù)的加密處理在傳輸過(guò)程中尤為重要。是保證網(wǎng)絡(luò)信息安全傳輸?shù)淖钪饕侄沃?。因此,設(shè)計(jì)采用MD5算法對(duì)TCP/IP傳輸協(xié)議的數(shù)據(jù)進(jìn)行加密處理。
2.1 MD5加密算法
MD5是一種迭代型強(qiáng)加密單向散列函數(shù)。輸入2個(gè)不同的明文不會(huì)得到相同的輸出值;根據(jù)輸出值,不能得到原始的明文,即其過(guò)程不可逆。因此,要解密MD5沒(méi)有現(xiàn)成的算法,只能用窮舉法,將可能出現(xiàn)的明文,用MD5算法散列之后,將得到的散列值和原始的數(shù)據(jù)形成一對(duì)一的映射表,通過(guò)比對(duì)表中的散列值,找出與之相匹配的原始明文[3]。其長(zhǎng)度取決于所采用,MD5以 512位分組來(lái)處理輸入信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過(guò)了一系列的處理后,算法的輸出由4個(gè)32位分組組成,將這4個(gè)32位分組級(jí)聯(lián)后將生成一個(gè)128位散列值,分別為:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210,將這4個(gè)鏈接變量復(fù)制到另外4個(gè)變量中:A到a,B到b,C到c,D到d[4]。第1輪循環(huán)包括16次操作,每次操作對(duì)a,b,c和d中的3個(gè)變量作1次非線性函數(shù)運(yùn)算,然后將所得結(jié)果加上第4個(gè)變量、信息的1個(gè)子分組和1個(gè)常數(shù)。將所得結(jié)果向左循環(huán)移位一個(gè)隨機(jī)的數(shù)位,并加上a,b,c或d中的一個(gè)變量。最后該結(jié)果存入a,b,c或d之一變量中。以下為每次操作中用到的4個(gè)非線性函數(shù)
F(X,Y,Z) =(X&Y)|((~X)&Z)
G(X,Y,Z) =(X&Z)|(Y&(~Z))
H(X,Y,Z) =X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
函數(shù)F,G,H,I設(shè)計(jì):如果X,Y和Z對(duì)應(yīng)位是獨(dú)立和均勻的,F(xiàn)(X,Y,Z),G(X,Y,Z),H(X,Y,Z),I(X,Y,Z)的每1位也應(yīng)是獨(dú)立和均勻的。函數(shù)F按逐位方式操作:如果X,那么Y,否則Z。函數(shù)H是逐位奇偶操作符。設(shè)Mj表示信息的第j個(gè)子分組(0≤j≤15),<<
FF(a,b,c,d,Mj,s,ti)表示a=b+(a+(F(b,c,d)+Mj+ti)<<
GG(a,b,c,d,Mj,s,ti)表示a=b+(a+(G(b,c,d)+Mj+ti)<<
HH(a,b,c,d,Mj,s,ti)表示a=b+(a+(H(b,c,d)+Mj+ti)<<
II(a,b,c,d,Mj,s,ti)表示a=b+(a+(I(b,c,d)+Mj+ti)<<
主循環(huán)共4四輪,每輪中唯一一個(gè)函數(shù)進(jìn)行16步操作,共64步,文獻(xiàn)[4]詳細(xì)介紹了4輪操作的具體算法。操作完成后,在A,B,C,D變量上分別加上a,b,c,d。然后用下一分組數(shù)據(jù)繼續(xù)運(yùn)行算法,最后輸出的是A,B,C和D的級(jí)聯(lián)。其邏輯圖如圖2所示。
圖2 MD5算法邏輯圖
本文利用MD5算法對(duì)上傳信息進(jìn)行校驗(yàn)處理,如果信息被篡改,其加密結(jié)果也將發(fā)生劇烈變化。設(shè)計(jì)時(shí)將傳輸?shù)拿恳粠瑪?shù)據(jù)以MD5值的方式保存,即檢查兩個(gè)字節(jié)數(shù)組經(jīng)過(guò)同一個(gè)算法后,結(jié)果是否一致:如果源一致,則結(jié)果必定一致,但如果任何一個(gè)字節(jié)不一致,其結(jié)果就相差很遠(yuǎn)。進(jìn)行數(shù)據(jù)傳遞時(shí),將傳輸秘鑰計(jì)算成值,然后再和系統(tǒng)中保存的值進(jìn)行比較,而傳輸過(guò)程中數(shù)據(jù)自身的值并沒(méi)有進(jìn)行傳遞,從而保證了數(shù)據(jù)的安全傳輸。
2.2 數(shù)據(jù)結(jié)構(gòu)針設(shè)計(jì)
TCP/IP協(xié)議族共分4層,按照層次由上到下,層層包裝。第3層是網(wǎng)絡(luò)層,IP協(xié)議就在這里,負(fù)責(zé)向數(shù)據(jù)添加IP地址和其他數(shù)據(jù)以確定傳輸目標(biāo)。第4層是數(shù)據(jù)鏈路層,該層為待傳送的數(shù)據(jù)加入一個(gè)以太網(wǎng)協(xié)議并進(jìn)行校驗(yàn)編碼,為最終的數(shù)據(jù)傳輸做準(zhǔn)備。數(shù)據(jù)鏈路層的最底層是硬件層,負(fù)責(zé)網(wǎng)絡(luò)的傳輸,該層定義網(wǎng)線的制式。讀取數(shù)據(jù)時(shí),發(fā)送協(xié)議的主機(jī)從上至下將數(shù)據(jù)按照協(xié)議封裝,而接收數(shù)據(jù)的主機(jī)則按照協(xié)議解開(kāi)數(shù)據(jù)包,最終獲取需要的數(shù)據(jù)[5]。
為了符合物聯(lián)網(wǎng)通信規(guī)則,采用符合TCP/IP協(xié)議建立架構(gòu)相關(guān)接口標(biāo)準(zhǔn),將接口信息嚴(yán)格按照?qǐng)D3所示的協(xié)議報(bào)文結(jié)構(gòu)進(jìn)行定義,并將其固化到物聯(lián)網(wǎng)傳輸模塊中,統(tǒng)一分配唯一的標(biāo)記屬性,從而保證了應(yīng)答的唯一性和有效性。
圖3 協(xié)議報(bào)文結(jié)構(gòu)
協(xié)議報(bào)文的結(jié)構(gòu)對(duì)于TCP/IP協(xié)議棧文件與協(xié)議主要文件的對(duì)應(yīng)關(guān)系[6],如圖4所示。
圖4 協(xié)議棧文件與協(xié)議對(duì)應(yīng)關(guān)系
2.3 尋址過(guò)程
傳統(tǒng)的互聯(lián)網(wǎng)資源尋址過(guò)程具有層次迭代性,即互聯(lián)網(wǎng)資源名稱到互聯(lián)網(wǎng)資源地址的尋址解析需要經(jīng)過(guò)若干次尋址操作完成。物聯(lián)網(wǎng)資源尋址和互聯(lián)網(wǎng)資源尋址相比,同樣具有層次迭代性,使用層次迭代模型可以有效地統(tǒng)一描述物聯(lián)網(wǎng)資源的尋址特性,這也是物聯(lián)網(wǎng)資源尋址的顯著特點(diǎn)之一,圖5所示為資源尋址層次化映射模型。
圖5 資源尋址層次化映射模型
將0~5 V輸出的溫度、濕度和壓力傳感器經(jīng)過(guò)物聯(lián)網(wǎng)傳輸模塊進(jìn)行數(shù)據(jù)轉(zhuǎn)換后,形成的物聯(lián)網(wǎng)數(shù)據(jù)包,通過(guò)過(guò)以太網(wǎng)協(xié)議抓包工具Ethereal,可以看到如圖6(a)所示的協(xié)議內(nèi)容。
圖6 物聯(lián)網(wǎng)數(shù)據(jù)包
結(jié)合圖6(b)顯示的傳輸數(shù)據(jù),協(xié)議軟件上的有效數(shù)據(jù)與傳輸數(shù)據(jù)值可知:溫度25.5 ℃、濕度51.3 %RH和壓力99.8 kPa完全一致,傳輸過(guò)程保證了數(shù)據(jù)的安全性和穩(wěn)定性,達(dá)到了將傳感器數(shù)據(jù)轉(zhuǎn)換成符合物聯(lián)網(wǎng)框架體系的數(shù)據(jù)進(jìn)行傳輸?shù)哪康摹?/p>
本設(shè)計(jì)符合物聯(lián)網(wǎng)框架體系下傳輸要求的傳輸模塊,可以將傳感器上傳的數(shù)據(jù)值封裝到符合物聯(lián)網(wǎng)傳輸框架體系下的數(shù)據(jù)結(jié)構(gòu)中,使得傳輸?shù)臄?shù)據(jù)幀遵循物聯(lián)網(wǎng)通用體系架構(gòu)的接口規(guī)范并進(jìn)行數(shù)字化通信的輸出,同時(shí),采用MD5加密算法對(duì)數(shù)據(jù)進(jìn)行加密處理,保證了數(shù)據(jù)安全傳輸。實(shí)驗(yàn)結(jié)果證實(shí),設(shè)計(jì)切實(shí)可行,大大提高了現(xiàn)有傳感器的應(yīng)用范圍,且不需要經(jīng)過(guò)任何2次開(kāi)發(fā)就可以直接連入物聯(lián)網(wǎng)終端進(jìn)行數(shù)據(jù)傳送,實(shí)現(xiàn)了傳感器到物聯(lián)網(wǎng)的通路建立以及相關(guān)協(xié)議轉(zhuǎn)換等功能。
[1] Freescale Semiconductor Co.Simple media access controller(SMAC)user’s guide SMACRM[Z].Rev.1.2 Freescale Semiconductor,2005:123-136.
[2] 諶 利,張 瑞,汪 浩,等.深入淺出ColdFire系列32位嵌入式微處理器[M].北京:北京航空航天大學(xué),2009:187-191.
[3] Schclar A,Rokach L,Abramson A,et al.User authentication based on representative users[J].Systems Man and Cybernetics,Part C:Applications and Reviews,2012,42(6):1669-1678.
[4] 韓津生,林家駿,葉建武,等.基于FPGA的md5高速處理模型設(shè)計(jì)[J].北京理工大學(xué)學(xué)報(bào),2012,32(12):56-60.
[5] 邱 赟,張 穎.TCP/IP在無(wú)線傳感器網(wǎng)中的應(yīng)用研究[J].傳感器與微系統(tǒng), 2007,26(12):64-66.
[6] 楊柳銘,韓會(huì)杰,周 雪,等.基于TCP/IP協(xié)議的網(wǎng)絡(luò)監(jiān)控開(kāi)關(guān)開(kāi)發(fā)[J].傳感器與微系統(tǒng),2016,35(7):53-56.
Design of Internet of things transmission module based on MD5 encryption algorithm
JIANG Jing, ZHANG Xian, YU Yun-xuan, TANG Sheng-wu, JIAN Rong-kun
(49th Research Institute,China Electronics Technology Group Corporation,Harbin 150001,China)
According to characteristics of intelligent sensor network,combined with characteristics of TCP/IP protocol communication,use MCF52236CAF50 MCU as core controller,based on IoT function,design a module through which digital signals can be converted into analog signals and transmitted by network.In order to ensure the security of data transmission,add MD5 encryption algorithm, and realize transmission security of data in IoT.
Internet of things(IoT); TCP/IP; MD5; transmission module
10.13873/J.1000—9787(2017)07—0124—03
2017—01—19
TP 212.1
A
1000—9787(2017)07—0124—03
姜 晶(1978-),女,碩士,工程師,主要從事智能傳感器及測(cè)量技術(shù)工作。