125
第7期
姜晶,等:基于MD5算法的物联网传输模块设计
的当前状态信息,传输被请求数据给征订者。通过上述
4个过程,实现了模块的主要功能,即对外部环境数据收
|jlfj+ti)《《s);
HH(n,b,c,d,尬,s,ti)表示Ⅱ=6+(o+(H(b,c,d)-4-
肘,+ti)《《s);
II(口,b,c,d,Mi,s,ti)表示o=6+(n+(,(b,c,d)+尬+
“)《《s)。
发,并将动态采集的数据打包成标准数据进行发送。
2软件设计
软件设计主要包括初始化、A/D转换、数据处理、打
包加密、以太网驱动以及数据传输等模块。其中,数据
帧的打包封装,以及数据的加密处理在传输过程中尤为
重要。是保证网络信息安全传输的最主要手段之一。
因此,设计采用MD5算法对TCP/IP传输协议的数据进
行加密处理。
主循环共4四轮,每轮中唯一一个函数进行16步操
作,共64步,文献[4]详细介绍了4轮操作的具体算法。操
作完成后,在A,B,C,D变量上分别加上o,b,c,d。然后用
下一分组数据继续运行算法,最后输出的是A,B,C和D的
级联。其逻辑图如图2所示。
2.1
MD5加密算法
MD5是一种迭代型强加密单向散列函数。输入2个
不同的明文不会得到相同的输出值;根据输出值,不能得到
原始的明文,即其过程不可逆。因此,要解密MD5没有现
成的算法,只能用穷举法,将可能出现的明文,用MD5算法
散列之后,将得到的散列值和原始的数据形成一对一的映
射表,通过比对表中的散列值,找出与之相匹配的原始明
文旧。。其长度取决于所采用,MD5以512位分组来处理输
入信息,且每一分组又被划分为16个32位子分组,经过了
图2 MD5算法逻辑图
一系列的处理后,算法的输出由4个32位分组组成,将这
4个32位分组级联后将生成一个128位散列值,分别为:
A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=
本文利用MD5算法对上传信息进行校验处理,如果信
息被篡改,其加密结果也将发生剧烈变化。设计时将传输
的每一帧数据以MD5值的方式保存,即检查两个字节数组
经过同一个算法后,结果是否一致:如果源一致,则结果必
定一致,但如果任何一个字节不一致,其结果就相差很远。
0x76543210,将这4个链接变量复制到另外4个变量中:
A到o,B到b,C到c,D到d‘4o。第1轮循环包括16次操
作,每次操作对o,b,c和d中的3个变量作1次非线性函
数运算,然后将所得结果加上第4个变量、信息的1个子
分组和1个常数。将所得结果向左循环移位一个随机的
数位,并加上o,b,c或d中的一个变量。最后该结果存入
Ⅱ,b,c或d之一变量中。以下为每次操作中用到的4个非
线性函数
进行数据传递时,将传输秘钥计算成值,然后再和系统中保
存的值进行比较,而传输过程中数据自身的值并没有进行
传递,从而保证了数据的安全传输。
2.2数据结构针设计
TCP/IP协议族共分4层,按照层次由上到下,层层包
装。第3层是网络层,IP协议就在这里,负责向数据添加
IP地址和其他数据以确定传输目标。第4层是数据链路
层,该层为待传送的数据加人一个以太网协议并进行校验
编码,为最终的数据传输做准备。数据链路层的最底层是
硬件层,负责网络的传输,该层定义网线的制式。读取数据
时,发送协议的主机从上至下将数据按照协议封装,而接收
数据的主机则按照协议解开数据包,最终获取需要的数
据。5 o。
F(X,Y,Z)=(X&Y)l((~x)&z)
G(X,Y,Z)=(X&Z)l(y&(~z))
H(x,l,,Z)=x“Y6Z
,(x,y,Z)=y“(xl(一z))
函数F,G,H,,设计:如果x,y和z对应位是独立和均
匀的,F(x,y,z),G(x,y,z),H(x,y,z),,(x,l,,z)的
每l位也应是独立和均匀的。函数,按逐位方式操作:如
果x,那么y,否则Z。函数H是逐位奇偶操作符。设M,表
示信息的第j个子分组(0 j 15),《《s表示循环左移s
为了符合物联网通信规则,采用符合TCP/IP协议建
立架构相关接口标准,将接口信息严格按照图3所示的协
议报文结构进行定义,并将其固化到物联网传输模块中,
统一分配唯一的标记属性,从而保证了应答的唯一性和有
效性。
sin
i
位,常数ti一般取232× I
则4种操作为:
I的整数部分,1 i 64,md。
FF(Ⅱ,b,c,d,M,,s,ti)表示o=6+(o+(F(b,c,d)+
Mi+ti)《《s);
协议报文的结构对于TCP/IP协议栈文件与协议主要
文件的对应关系。6o,如图4所示。
GG(o,b,c,d,M,,5,ti)表示Ⅱ=6+(tl,+(G(b,c,d)+
万方数据
全部评论(0)