常用的PC级加密算法运算量过大,不适合在嵌入式设备上运行。为了使嵌入式设备的数据存储及传输能够安全地进行,利用混沌信号对数据进行加密以提高嵌入式设备数据的安全性。在ARM2440+Linux平台上实现了混沌信号生成功能并利用混沌信号对数字图像进行加密的实验,最终生成加密后的一份密文信息。

一、嵌入式系统图像混沌加密实现原理

1、混沌加密原理

混沌信号用于数据保密通信中有多种形式,混沌保密是利用混沌信号的各种特性来实现的。在数据的发送端将其作为密钥明文信息和混沌信号经加密变换后形成密文,然后在信道中传送,在接收端知道解密密钥和解密变换的合法用户,能够得到正确的明文。这种加密原理主要是源于传统的对称密钥加密算法。

混沌加密中一个重要的因素是混沌同步,其决定混沌信号能不能运用到加密中,用能够同步的混沌信号加密才能正确解密。所谓混沌同步是指一个系统的混沌动力学轨道收敛于另一个系统的混沌动力学轨道,以致两个系统在以后的时间里始终保持步调的一致。目前常用的混沌同步方法主要有以下几种:驱动一响应同步及串联同步法、主动-被动同步法、互耦合混沌同步法、自适应同步方法和神经网络阿步方法等。本文所用的Chen系统是使用系统中的jIf作为驱动变量来实现驱动一响应同步。下面以Chen系统为例对系统进行研究。

2、Chen系统的状态方程

Chen系统的无量纲状态方程的数学表达式为:

基于嵌入式系统的混沌数字图像文件加密

式中,a、b、c为系统参数,a=35. b=3.c=28。

由于本文中所采用的嵌入式平台不能够处理模拟量,要想在平台上产生混沌信号就需要对相应的系统进行离散化。利用Euler算法对系统进行离散化。式(1)中:

基于嵌入式系统的混沌数字图像文件加密

其中T为取样时间间隔,在理论上r的值越小,越接近连续状态方程的结果,但是所使用的平台运算能力有限,在选取r时要根据实际情况来决定。同理可得dy和盅一对应的离散化方程。对式(1)进行Euler离散化处理得到的方程为:

基于嵌入式系统的混沌数字图像文件加密

式中,T=O.002,n为迭代数。

根据式(2)及相关的参数,在Matlab中仿真得到Chen系统的混沌吸引子的相图以及用石变量驱动的同步相图如图1所示。

基于嵌入式系统的混沌数字图像文件加密

 

二、ARM嵌入式Linux系统的软硬件平台

1、系统的硬件平台

加密系统平台采用三星公司的32 bit微处理器S3C2440Ao该处理器内部集成了ARM920T内核,能够实现MMU、AMBA、BUS和Harvard高速缓冲体系结构。带有独立的16 KB指令Cache和16 KB数据Cache.并且集成了很多外围设备接口,如RAM控制器、Nand Flash控制器、10/100 M以太网接口、LCD控制器、并行I/O口,主频最高可达533 MHz。

硬件平台配置了256 MB 8 bit NAND Flash、64 MB32 bit的SDRAMo通过以太网控制器芯片DM9000扩展了一个网口、一个SD卡接口、I/O扩展接口、触摸屏接口、RS-232串行通信接口。另外,硬件平台上还有一些扩展模块:一个I/O扩展电路接口,用于现场数据的采集;GPRS模块接口.用于发送和接收加密后的数据。主板也可以通过以太网接口与外界通信,在实验中主要是通过以太网以NFS来挂载加密系统在平台上运行。系统硬件结构图如图2所示。

基于嵌入式系统的混沌数字图像文件加密

2、嵌入式Linux系统

目前市面上很多嵌入式设备特别是消费类产品都移植了嵌入式Linux系统。因为Linux系统是开源的。运用到商业中不需要支付庞大的版权费,而且Linux系统的可靠性高。因此,本实验中的平台移植的是嵌入式Linux系统。

整个系统的架构如图3所示:最底层是引导加载Linux内核程序的bootloader,系统中采用的是三星公司自行研发的Supervivi;中间的是Linux2.6.32.2版本的内核,在移植Linux系统时考虑到暂时不需要使用太多的资源,同时为减少CPU资源的开销,将内核做了充分的裁剪,在内核中包含了初始化平台的各个函数、串口终端、LCD、以太网及相关的设备驱动等;根文件系统也是嵌入式Linux中不可缺少的一部分,这一层中包涵了嵌人式平台的必不可少的bin文件;最顶层是用户应用程序,用于产生混沌信号,加密、解密程序都放在其中。

基于嵌入式系统的混沌数字图像文件加密

三、数字图像混沌加解密系统的设计

混沌加密系统中,混沌加密算法的设计至关重要,它决定了混沌加密系统的安全性以及执行效率。实验中设计的加密算法采用传统的置乱算法和混沌加密相结合的方法,传统的置乱加密并不能改变图像的灰度统计特性,而在置乱的同时如果加上混沌加密就能够很好地改变图像的灰度统计特性。混沌加密所需的密码流是采用Chen系统产生的混沌序列。

1、加密算法的设计 

结合传统加密技术,本文提出的实现算法是基于传统置乱与混沌加密相结合的方法,其加密原理框图如图4所示。

基于嵌入式系统的混沌数字图像文件加密

(1)原始图像信息P首先被传送到传统加密器中,经过置乱技术置乱像素,在密匙ko加密下得到加密密文C;

(2)将经过置乱后生成的密文C传送到混沌加密器中,利用Chen系统产生的混沌序列ki进行加密得到混沌加密密文D,同时生成了加密图像P'。

2、基于高维混沌系统的圈像加密程序流程

根据本文的加密算法对其进行嵌入式C语言的编程。首先对相关的函数进行初始化,初始化完成之后紧接着判断用户的使用规则符不符合函数用法规则(这里面包括原图像和加密图像的文件名)。在进行混沌加密前对图像进行传统的量乱加密,是因为Chen系统已经过Euler离散化,通过迭代产生混沌序列同时将经过传统置乱加密的信息加入到混沌序列中,以此来达到加密的最好效果。根据嵌入式系统的开发原则,对跨平台开发的程序进行交叉编译,系统中使用ann-linux-gcc交叉编译工具。因此在交叉编译前需要在PC机上安装arm-linux-gcc交叉编译工具,使用交叉编译工具编译后生成目标板可执行的目标代码。加密算法的流程图如图5所示。

基于嵌入式系统的混沌数字图像文件加密

四、系统实现结果与安全性能分析

1、实现结果

基于Chen系统的数字图像加密算法在嵌入式unux平台上的实现结果如图6所示。图6(a)为16 bit深度的BMP图像,选取16 bit深度的原因是在嵌入式Linux平台中设备驱动framebuffer只支持RGB565格式的BMP图像,同时为了与MIN12440平台上的TFT LCD匹配,使之能够完美地显示出原始图像的色彩;图6(b)为加密信号经过转换后得到的图像,由于经过混沌加密后的图像是32 bit的,不能够直接显示出来,所以需要转换成RGB565格式的BMP图像才能够正常显示;图6(c)为经过逆运算后得到的解密图像。

基于嵌入式系统的混沌数字图像文件加密

2、安全性能分析

安全性能分析主要是针对BMP图像灰度值的统计特性。利用MATLAB计算出原图像与加密后的灰度信息进行对比。

原图像的RGB分量灰度值的统计直方图如图7所示。由图可知,各个分量所在的灰度值的取值范围各有区别。如果利用传统的置乱方法进行加密,图像的灰度值统计特性并没有发生改变,几乎与原始图像的灰度值统计特性保持一致。

基于嵌入式系统的混沌数字图像文件加密

加密图像RGB分量灰度值的统计直方图如图8所示,从图7与图8的对比中可以得出:经过置乱与混沌加密的图像其灰度值统计特性已经发生了明显的改变,使得各分量的灰度值遍历整个灰度空间,使混沌的扩散现象在加密中得到充分的体现,满足了加密文件的安全性能要求。正是由于混沌的这种特性使得入侵者很难通过加密图像的灰度值统计特性破译文件,从而增加了密文图像的安全性。

基于嵌入式系统的混沌数字图像文件加密

实验中设计了一种在嵌入式Linux系统上实现对BMP图像进行混沌加密与传统加密相结合的算法并且在MIN12440平台上实现。实验结果达到了设定的目标,加密性能满足实际应用中的标准。将该算法移植到嵌入式系统设备中运行,可使用户的数据得到较好的保护。下一步还需要对该算法进行改进,同时利用更为复杂的混沌系统作为密码流对信息进行加密,使得该算法在嵌入式设备加密的速度更高,达到实时的效果。

小知识之嵌入式系统

嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。