赵 航, 包西勇, 薛 玮, 马树亮
(山东省交通规划设计院集团有限公司,济南 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,满足智慧服务区建筑设备物联网系统的整体性能。