姜 晶, 张 宪, 于云选, 唐胜武, 简荣坤
(中国电子科技集团公司 第四十九研究所,黑龙江 哈尔滨 150001)
基于MD5算法的物联网传输模块设计
姜 晶, 张 宪, 于云选, 唐胜武, 简荣坤
(中国电子科技集团公司 第四十九研究所,黑龙江 哈尔滨 150001)
依据网络智能化传感器的特点,结合TCP/IP协议通信特点,以MCF52236CAF50单片机为核心控制器,设计了一种基于物联网功能可以将模拟信号转换成数字信号的模块,同时为了保证数据传输的安全性,加入了信息—摘要(MD5)加密算法,实现了信息在物联网中的安全有效传输。
物联网; TCP/IP; MD5; 传输模块
随着物联网、云计算、大数据、移动互联网等技术的进一步发展,信息领域新产品、新服务大量涌现,不断激发新的消费需求。我国物联网产业的覆盖面日益增大,而传统的通信手段已不能满足物联网的数据传输及云计算平台的需要,但改造传统传感器又不切实际,因此,将模拟数据转换成符合物联网框架结构进行数字传输的模块,即,物联网传输模块迫在眉睫。模块可以对物联网设备进行接入和管理,并对上提供物联网服务,其中,最重要的是将其收集的基础信息传递给大数据平台等进行大数据处理,同时,可以进一步推动物联网与云计算、大数据、移动互联网等新一代信息技术的融合创新,带动物联网关键技术突破及产业规模化发展。
文本设计了基于物联网功能的模/数信号转换模块,并加入了信息—摘要算法,实现了信息在物联网中的安全有效传输。
物联网传输模块内部结构如图1所示。
图1 物联网传输模块内部结构
微处理单元选用MCF52236CAF50作为中央处理器,支持通过以太网收发数据,符合RFC的TCP/IP堆栈,支持ARP,IP,ICMP,UDP,TCP,DHCP,BOOTP和TFTP等协议[1],由于其含有以太网控制器以及Ethernet PHY的10/100 Ethernet MAC,因此降低了系统成本,减少了设计中的组件数量,节约设计空间,有效缩小了模块体积[2]。
设计过程主要分为4类:感知过程、激励过程、接收过程、传输过程。1)感知过程:传输模块从外界环境收集信息,对收集的信息作模/数转换并提交给微处理单元对信息进行处理;2)激励过程:根据从外界环境收集的信息请求,控制系统进行数据输出,并对输出结果进行数/模转换,将输出信号传输给激励装置,从而对外界环境产生影响;3)接收过程:控制系统响应主机发送的命令请求或者数据的过程;4)传输过程:主机通过通信设备发布传输模块节点的当前状态信息,传输被请求数据给征订者。通过上述4个过程,实现了模块的主要功能,即对外部环境数据收发,并将动态采集的数据打包成标准数据进行发送。
软件设计主要包括初始化、A/D转换、数据处理、打包加密、以太网驱动以及数据传输等模块。其中,数据帧的打包封装,以及数据的加密处理在传输过程中尤为重要。是保证网络信息安全传输的最主要手段之一。因此,设计采用MD5算法对TCP/IP传输协议的数据进行加密处理。
2.1 MD5加密算法
MD5是一种迭代型强加密单向散列函数。输入2个不同的明文不会得到相同的输出值;根据输出值,不能得到原始的明文,即其过程不可逆。因此,要解密MD5没有现成的算法,只能用穷举法,将可能出现的明文,用MD5算法散列之后,将得到的散列值和原始的数据形成一对一的映射表,通过比对表中的散列值,找出与之相匹配的原始明文[3]。其长度取决于所采用,MD5以 512位分组来处理输入信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由4个32位分组组成,将这4个32位分组级联后将生成一个128位散列值,分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210,将这4个链接变量复制到另外4个变量中:A到a,B到b,C到c,D到d[4]。第1轮循环包括16次操作,每次操作对a,b,c和d中的3个变量作1次非线性函数运算,然后将所得结果加上第4个变量、信息的1个子分组和1个常数。将所得结果向左循环移位一个随机的数位,并加上a,b,c或d中的一个变量。最后该结果存入a,b,c或d之一变量中。以下为每次操作中用到的4个非线性函数
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))
函数F,G,H,I设计:如果X,Y和Z对应位是独立和均匀的,F(X,Y,Z),G(X,Y,Z),H(X,Y,Z),I(X,Y,Z)的每1位也应是独立和均匀的。函数F按逐位方式操作:如果X,那么Y,否则Z。函数H是逐位奇偶操作符。设Mj表示信息的第j个子分组(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)<<
主循环共4四轮,每轮中唯一一个函数进行16步操作,共64步,文献[4]详细介绍了4轮操作的具体算法。操作完成后,在A,B,C,D变量上分别加上a,b,c,d。然后用下一分组数据继续运行算法,最后输出的是A,B,C和D的级联。其逻辑图如图2所示。
图2 MD5算法逻辑图
本文利用MD5算法对上传信息进行校验处理,如果信息被篡改,其加密结果也将发生剧烈变化。设计时将传输的每一帧数据以MD5值的方式保存,即检查两个字节数组经过同一个算法后,结果是否一致:如果源一致,则结果必定一致,但如果任何一个字节不一致,其结果就相差很远。进行数据传递时,将传输秘钥计算成值,然后再和系统中保存的值进行比较,而传输过程中数据自身的值并没有进行传递,从而保证了数据的安全传输。
2.2 数据结构针设计
TCP/IP协议族共分4层,按照层次由上到下,层层包装。第3层是网络层,IP协议就在这里,负责向数据添加IP地址和其他数据以确定传输目标。第4层是数据链路层,该层为待传送的数据加入一个以太网协议并进行校验编码,为最终的数据传输做准备。数据链路层的最底层是硬件层,负责网络的传输,该层定义网线的制式。读取数据时,发送协议的主机从上至下将数据按照协议封装,而接收数据的主机则按照协议解开数据包,最终获取需要的数据[5]。
为了符合物联网通信规则,采用符合TCP/IP协议建立架构相关接口标准,将接口信息严格按照图3所示的协议报文结构进行定义,并将其固化到物联网传输模块中,统一分配唯一的标记属性,从而保证了应答的唯一性和有效性。
图3 协议报文结构
协议报文的结构对于TCP/IP协议栈文件与协议主要文件的对应关系[6],如图4所示。
图4 协议栈文件与协议对应关系
2.3 寻址过程
传统的互联网资源寻址过程具有层次迭代性,即互联网资源名称到互联网资源地址的寻址解析需要经过若干次寻址操作完成。物联网资源寻址和互联网资源寻址相比,同样具有层次迭代性,使用层次迭代模型可以有效地统一描述物联网资源的寻址特性,这也是物联网资源寻址的显著特点之一,图5所示为资源寻址层次化映射模型。
图5 资源寻址层次化映射模型
将0~5 V输出的温度、湿度和压力传感器经过物联网传输模块进行数据转换后,形成的物联网数据包,通过过以太网协议抓包工具Ethereal,可以看到如图6(a)所示的协议内容。
图6 物联网数据包
结合图6(b)显示的传输数据,协议软件上的有效数据与传输数据值可知:温度25.5 ℃、湿度51.3 %RH和压力99.8 kPa完全一致,传输过程保证了数据的安全性和稳定性,达到了将传感器数据转换成符合物联网框架体系的数据进行传输的目的。
本设计符合物联网框架体系下传输要求的传输模块,可以将传感器上传的数据值封装到符合物联网传输框架体系下的数据结构中,使得传输的数据帧遵循物联网通用体系架构的接口规范并进行数字化通信的输出,同时,采用MD5加密算法对数据进行加密处理,保证了数据安全传输。实验结果证实,设计切实可行,大大提高了现有传感器的应用范围,且不需要经过任何2次开发就可以直接连入物联网终端进行数据传送,实现了传感器到物联网的通路建立以及相关协议转换等功能。
[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].北京:北京航空航天大学,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高速处理模型设计[J].北京理工大学学报,2012,32(12):56-60.
[5] 邱 赟,张 颖.TCP/IP在无线传感器网中的应用研究[J].传感器与微系统, 2007,26(12):64-66.
[6] 杨柳铭,韩会杰,周 雪,等.基于TCP/IP协议的网络监控开关开发[J].传感器与微系统,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-),女,硕士,工程师,主要从事智能传感器及测量技术工作。