检务移动终端的通信加密方案研究∗
2020-10-30齐玉东李程瑜孙明玮丁海强
王 建 齐玉东 李程瑜 孙明玮 丁海强
(1.海军航空大学 烟台 264001)(2.92330部队50分队 青岛 266000)
1 引言
随着信息技术在检务工作的广泛应用,“智慧检察院”逐渐成为新兴的检务工作形式[1~4]。利用无线传感器网络节点、无线监控节点、手机节点等移动终端节点采集现场信息等[5],可以极大便利检务工作的运行效率,成为近几年检务工作的热门研究内容。尤其是无线传感器网络节点,因其价格低廉、环境适应性强、体积规模小等优势,逐渐成为检务工作中信息采集的首选移动终端设备。
然而,在检务工作中,无线传感器节点无人值守、计算存储与能量资源受限等特殊性,现有的传感器节点存在许多安全漏洞,攻击者可以通过漏洞方便地获取传感节点中的机密信息、修改传感节点中的程序代码等[6],严重威胁了检务工作与检务网络的安全运行。为保障无线传感器网络的通信安全,各类安全协议的研究已得到广泛关注。当前传统网络中已被公认的安全协议如IPSec、SSL等[7~13],以及传统ad hoc无线网络安全解决方案均受到传感器节点计算资源及能耗的限制,均不是应用于无线传感器网络的适宜方案。目前运用于无线传感器网络的经典加密算法如AES、SkipJack等大量采用了置换表,对于配备能源少、计算能力低、存储资源有限的无线传感器节点来说也不是理想的方案[14]。这些问题对无线传感器在检务工作中的应用产生了较大的威胁。
针对这些问题,本文实现和验证了一种轻量级的通信加密方案。采用基于整数混沌的分组加密算法实现无线传感器节点间的数据通信加密,并运用基于多任务的嵌入式操作系统Contiki实现对无线传感器网络的控制。基于整数混沌的分组加密算法节省了大量的置换表,并且具有安全性高和功耗较低的特点,Contiki嵌入式操作系统良好的运行机制则进一步减少了无线传感器节点的能耗。实验结果表明,该通信加密方案具有资源消耗少,执行效率高,安全性高的优点。可以有效应用在智慧检务工作中。
2 基于整数混沌的分组加密算法
2.1 基于整数混沌的分组加密算法的原理
该算法采用了一种8bit的Feistel基本结构,其结构如图1所示,明文的一个分组被分为高位和低位各4bit,分别记为Li和Ri。在轮密钥ki的作用下,Ri-1通过f函数后与Li-1异或生成行的Ri,而Ri-1变成新的Li,由此完成一轮Feistel运算。
图 1 8bit的Feistel结构
图1所示的Feistel结构可表示为
其中,Ri、Ri-1、Li、Li-1、F的长度均为4bit。
f函数为8bit的整数型混沌迭代式,如图2所示。低4bit的Ri-1首先被扩充到8bit,与同样8bit的轮密钥ki异或后,输入到Chaos函数中进行8bit整数型混沌迭代式,输出的8bit迭代值再次分为高低各4bit,相互异或后生成最终的输出F。
Chaos函数接收输入作为Zn,迭代后输出Zn+1。每一轮的中间输出F与输入的Ri-1及当前的ki轮密钥相关,且利用8bit整数混沌计算的非线性可提高加密轮的安全性。
完整的8bit分组加密过程如图3所示。
在明文分组进入轮加密之前,首先对8bit数据进行P置换,完成初步的扩散。加密过程中的轮数可变,同一般的Feistel结构分组加密一样,最后一轮不执行左右交互步骤。轮加密完成后,再一次对8bit数据进行P置换。这样的加密过程与解密过程具有完全相同的结构,仅需逆序地使用加密的子密钥序列即可构成对应的解密操作。如加密时顺序使用了4轮子密钥k1、k2、k3、k4,则解密时正确的子密钥使用顺序为k4、k3、k2、k1。
图2 8bit分组的Feistel结构中的f函数
图3 8bit WSN分组加密流程
明文输入后及密文输出前需调用8 bit的P置换起到常规扩散的效果,置换结构如图4所示。
图4 8bit的P置换结构
P置换可简化表示为
即0号比特位与6号比特位互换;1号比特位与3号比特位互换;2号比特位与5号比特位互换;4号比特位与7号比特位互换。
2.2 基于整数混沌的分组加密算法性能分析
在加密过程中,由于将复合混沌序列作为轮加密的子密钥,因此系统安全性可得到较好的保证。另外,通过增加Feistel结构轮数可增加密钥数目,进一步提高安全性。
例如使用4轮加密,设需4轮的子密钥为k1、k2、k3、k4。每个子密钥的长度均为8bit,单个分组的加解密一共需32bit的密钥。复合混沌系统一次迭代正好产生32bit的随机序列,可用于提供4次轮加密所需的子密钥。该方案采用一次混沌映射迭代来加解密一个明文分组,即在保证密码系统安全的前提下,可有效提高加密运算的效率。
由于AES、SkipJack等经典加密算法大量地采用了置换表,因此在软件实现算法时,对硬件存储的要求较高,严重地影响了传感节点的运算性能,而这里8bit数据的置换结构简单,无需复杂的置换表,更适用于存储资源有限的传感节点。
3 Contiki嵌入式操作系统
Contiki嵌入式操作系统是一个适用于有内存的嵌入式系统的开源的、高可移植的、支持网络的多任务操作系统。包括一个多任务核心、TCP/IP堆栈、程序集以及低能耗的无线通讯堆栈。Contiki嵌入式操作系统采用C语言开发,是一个专门针对物联网或者无线传感器网络应用的操作系统,在科研以及产业化方便得到广泛的应用。
3.1 Protothreads机制
Contik嵌入式操作系统中使用轻量级的proto⁃threads进程模型。Protothreads混合了事件驱动模型与多线程模型,提供良好控制流的同时可以节省内存。在Protothreads中,事件处理过程可以被阻塞等待特定事件的发生。此机制可以有效减少设备的功耗,尤其是在对功耗要求十分苛刻的无线传感器网络中,其效果十分显著。
3.2 支持多平台
Contiki嵌入式操作系统支持多种微型平台,包括8051、MSP430、AVR等以及许多ARM设备,如表1所示。
表1 Contiki支持的处理器和无线传感器平台
本文将设计的无线传感器网络通信加密方案加载到Contiki嵌入式操作系统中,可以广泛应用于目前市场上绝大多数的无线传感器平台,做到较好的兼容性,免去了只能将通信加密方案应用于特定的单片机处理器上的困境,解决了程序移植工作的复杂性。
3.3 Contiki集成功耗分析工具
为了延长传感器网络的生命周期,控制和减少传感器节点的功耗至关总重要,无线传感器网络领域提出的许多网络协议都围绕降低功耗而展开。为了评估网络协议以及算法能耗性能,需要测量出每个节点的能量消耗,由于节点数量多,使用仪器测试几乎不可行。Contiki提供了一种基于软件的能量分析工具,自动记录每个传感器节点的工作状态、时间,并计算出能量消耗,在不需要额外的硬件或仪器的情况下就能完成网络级别的能量分析。Contiki的能量分析机制既可用于评价传感器网络协议,也可用于估算传感器网络的生命周期。
4 基于整数混沌的分组加密算法实现
本文以CC2530无线传感器模块为例进行实现与测试,通过Contiki嵌入式操作系统进行编程,程序语言为C语言。因Contiki操作系统支持多种微型平台,本设计理论上可以拓展应用到其它芯片上。本文仅以CC2530为例进行实现和测试。
程序设计主要分为加密部分、解密部分以及F函数三部分。将编写好的程序代码以应用程序的方式加载于Contiki嵌入式操作系统中,输入生成hex文件的指令,并把生成的hex文件烧录至CC2530模块中,实现CC2530模块加密通信,如图5所示。
在本实验中,为了便于观察CC2530模块加密通信情况,使用串口调试助手对加解密数据进行显示,具体测试设备如表2、表3所示,测试项目如表4所示。
图5 CC2530模块实现加密通信
表2 PC测试设备
表3 开发板测试设备
5 通信加密模块结果分析
本文分别测定了XTEA、HIGHT、DES DESXL、PRESENT、LBlock和基于整数的混沌分组加密算法密码算法应用于同一传感器(本文采用CC2530通信模块)时的运行速度与功耗表现,具体实验数据如表5所示。
表4 测试项目
表5 运行速度与功耗表
本作品的算法加密体系与XTEA、HIGHT、DES、DESXL、PRESENT和LBlock和等轻量级算法做了比较,得出了以下结论。
1)DESXL的密钥长度最长,为184bit,虽然安全性足够但加密的时间过长;DES密钥长度最短,仅为56bit,这导致DES算法的安全性不够高。LBlock算法的密钥长度为80bit,加密解密的速度较快。而基于整数混沌的分组加密算法分组长度很小,无置换盒,运行速度更快。
2)相较于其他6种轻量级密码算法,基于整数的混沌分组加密算法运行时占用的空间最小,空间复杂度最小。
3)由于以上的各种优点,基于整数混沌的分组加密算法在同样加密条件下功耗消耗最低,仅为17.09mW。
在具体分析了基于整数混沌的分组加密算法与其他其轻量级算法的各项参数后发现,DESXL等算法为了保证足够的安全性密钥长度较长,而本文采用混沌算法生成子密钥,密钥长度小,但安全性高,难以破解,且运行速度快,功耗小。因此可以说是目前所有的轻量级密码算法中较为优秀的一种。
6 结语
本文主要针对经典加密算法的缺点,为适应WSN节点配备能源少、计算能力低、存储资源有限等特性,运用基于整数混沌的分组加密算法对信息进行加密,提高了安全性和计算速度,降低了功耗,有效提高了无线传感器网络的安全性能,满足了当前保密形式日趋严峻的情况下对无线传感器网络通信的要求,可应用于安全程度需求较高的智能家居、工农业控制、生物医疗、环境监测、危险区域远程控制等无线传感器通信领域,具有广阔的应用前景。