基于STM32的无线通信系统数据加密技术研究

2018-08-31 05:54广西师范大学黄竞辉黄一平
电子世界 2018年16期
关键词:加密算法嵌入式密码

广西师范大学 黄竞辉 黄一平

1 前言

信息时代的到来,使各种数据的传输越来越频繁,这在提高社会信息化的同时,也给数据的安全带来了巨大的隐患。目前无线通信传输技术被广泛应用,但无线网络的开放性注定了其比较容易受到拦截与入侵。为了提高无线通信系统的安全性,许多学者进行了大量的研究。在嵌入式技术的发展下,基于ARM的数据加密算法实现受到了广泛关注。文献[1]在ARM7智能卡上通过STK功能实现了动态口令的验证,提高了口令的安全性;文献[2-3]设计了一种基于ARM平台的COS技术体系,提高了STK的可扩展性和兼容性;文献[4]针对黑客对程序代码的入侵问题,对程序代码安全性进行了研究,保证了ARM代码安全。此外,还有许多文献也进行了相关的研究。

2 SM4算法原理

为了保护国家安全,提高自主研发的保护力度,国家提出了商用密码的战略。根据相关规定,我国现有的规定密码包括SM1分组密码算法、SM4 分组密码算法、祖冲之密码、SM9 是公钥密码算法等等,这些密码均在各领域有着广泛的应用。其中SM4是最早被提出,也是目前使用较为广泛的标准加密算法之一,它属于一种高级的对称分组加密算法。SM4 采用传统的Feistel 结构类型,以128比特为其中数据容量,进一步可分为四个32bit字,通过32 位非线性迭代结构完成数据的加密。从数学的角度上看,SM4只需要采用最基本的异或、循环转换和S 盒等运算即可完成加密。

大量实践证明,SM4具有较强的安全性,可以在众多商用领域进行推广应用。一般来说,密码安全评估的指标有计算的、可证明的以及无条件的三种安全性能。简单来说,如果破译该种加密算法所需要的时间越长,说明该算法安全性越高,这就是计算的安全性的由来;可证明性的安全与该算法相关的数学推算难度有关,如果长时间仍无法找出其对应的解,则可以证明该算法是安全的;无条件的安全性是密码安全性的最高评判标准,它假设破译者拥有破解该密码的任意条件,如果在一切条件齐全的情况下仍无法破译,才能证明该加密算法是无条件安全的。

SM4加密算法虽然具有较好的安全性,但也仍然无法证明是绝对安全的,因此许多业内人士一直在探索SM4的破译方法。在SM4加密算法被破解之前,可对其进行提升,充分利用参数的随机性和动态性来增加密码的复杂度,最在程度地破坏密码密文的统计学特征。

3 硬件设计方案

本文设计了一个基于嵌入式技术的安全通信系统,重点关数据传输的安全性,对性能不做过于苛刻的要求。系统控制核心采用STM32系列芯片,操作系统为µC/OS-Ⅱ,通信方式采用无线网络,数据传输过程中采用了加密算法保障数据安全。本系统不但可以满足近距离和远程的通信,还可以满足数据传输的安全需求。总体结构如图1所示。

图1 总体方案设计图

如图1所示,STM32微处理器的任务是处理数据,并保证数据的安全,是系统的核心模块。综合系统需求及芯片的各方面性能,本文选用了STM32F103RBT6芯片,以ALIENTEK MiniSTM32为系统开发平台。GPRS模块是无线通信网络的核心,考虑到功耗低和高性能的需求,选用了SIM-900A芯片。远程控制中心必须事先取得一个随机分配的IP地址,然后才能实现互连。短距离传输满足了嵌入式设备之间的近距离相互通信,而无需采用GPRS模块,节省了设计成本。充分利用硬件模块实现近距离通信和远距离通信,是本系统设计的一个创新点。

4 软件设计方案

通信系统软件的主要功能是能数据进行处理,并通过加密算法保证数据传输安全。信息的加密由嵌入系统微处理器完成,无线信息加密则由无线通信模块完成,它们共同构成了一个全方位数据安全的通信系统。软件设计的基本任务包括发送设备、接收设备及上位机等设备的软件开发。

4.1 发送端软件设计

发送终端负责数据的加密和发送,信息离开发送终端设备之后必须处于安全加密状态,保证途中不能被截获与识别,安全传输到接收设备。系统上电启动后将自动运行初始化程序,完成硬件各单元的复位,以及操作系统的初始化,对其进行事件优先级的定义。初始化后的系统可以使nRF24L01模块工作在发送模式,GPRS进入通信监听状态。发送端软件主程序如图2所示。

图2 发送终端软件流程图

图2 中所示的各个任务在程序中都表现为一个具体的任务,各个任务之间不是相互独立的,而是相互影响的。首先,主函数主动调用任务调度函数,并根据初始化时所确定的优先进行进行排队执行。nRF24L01 模块向周围发出连接请求并与附近的相同模块进行组网。但数据传输的任务是是由GPRS主动发起的,因为它在建立通信前需要配置IP才能入网。一旦GPRS与接收设备成功建立通信,STM32主控单元将进入监听状态,并向接收设备请求接收数据。一时接收终端响应了接收请求,以方即可开始采用TCP/IP协议进行密文的传输,数据包的加密是由STM32主控芯片完成的。

发送端需要使用的数据接口包括有:任务创建接口Task_Start(),数据加密任务接口OSTask_Create(),远距离传输任务接口OSTaskCreateExt()以及近距离传输任务接口OSTaskCreateExt()。

4.2 数据加密算法设计

本系统的数据加密由STM32微处理器完成,采用了提升的SM4算法,数据在加密前需要进行分组,然后通过事先设置好的密钥开始运行加密算法。加密过程不是随时都可以进行的,它需要与其它任务进行配合,各自有着不同的执行时序,本文通过信号量的方法对这个时序的配合进行控制,提供信号量控制接口OSSemCreate(),当加密任务取得信号量时,立即调用加密接口OSSemPend()对数据进行加密,否则进入等待状态。

4.3 接收端软件设计

接收端的功能与发送端是对应的,它可以看成是发送端的反过程。接收端需要完成的任务有数据接收、数据解密、数据存储等等,实际上,各任务都是以独立的子程序存储在后台中的,只是在不同的需要时对时行进行不同优先级的调用,以实现不同的功能。各子程度受主控单元协调控制,共享硬件资源,协调一致地进行接收工作。

4.4 系统测试

本系统着重讨论了在无线通信系统中进行数据加密,因此点对数据加密部分进行了测试。结果表明,数据安全性能在嵌入式平台与PC平台均有着类似的水平。AES加密算法只需要极少的时间就可以完成加密任务,而SM4则需要更多的时间,而提升的SM4算法则有更理想的综合性能,肯具有更优秀的算法混淆性,最大程度上保证了数据安全。

5 结语

随着信息技术和网络技术的发展,数据传输的安全性日益突显,无线网络的开放性使其安全性受到重大威胁,为黑客提供了可乘之机,随着嵌入式技术的发展,通过嵌入式技术对无线通信网络进行加密已成为一种趋势。在国密系列加密算法中,对称加密算法被证明具有更好的加密性能,更适合于嵌入式系统的应用。SM4作为我国自主研发的加密算法,一方面要不断推广应用,另一方面也要不断进行提升,避免被破译。本文对无线通信网络进行了数据加密算法的应用,充分利用了嵌入式技术的优势,使得无线通信网络的数据传输更加安全。

猜你喜欢
加密算法嵌入式密码
密码里的爱
密码抗倭立奇功
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
密码藏在何处
基于小波变换和混沌映射的图像加密算法
夺命密码
Hill加密算法的改进
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器