摘 要:为了提高混沌图像加密传输系统的传输速度并扩大应用范围,提出了一种实现混沌图像加密传输的新方法:利用VSFTPD软件在Mini 2440ARM平台上构建FTP服务器,通过FTP实现混沌加密图像数据的传输。实验结果表明,该系统能够实现混沌加密图像的可靠快速传输。
关键词:文件传输协议;ARM;混沌加密;图像
计算机和网络技术的飞速发展使得上网设备的体积越来越小,手机购物、手机支付在生活中的应用越来越广泛。智能手机、平板电脑运行的是嵌入式操作系统,因此嵌入式设备在移动网络中的信息安全逐渐受到人们的关注。个人的隐私信息一旦被窃取,将会造成很大的损失。而当前比较成熟的DES、AES等加密算法主要针对PC平台设计,不适合直接应用于嵌入式设备中。
混沌系统具有对初始条件高度敏感性和遍历性的特点,可以实现同步控制,因此非常适合进行数据的加密传输[1]。当前,国内外对于嵌入式平台上混沌加密技术的应用研究非常广泛,关于混沌加密技术的研究已经比较成熟。但是当前多数加密系统是通过简单调用Socket API函数编程实现网络传输的,其速度较慢且不适合在广域网中使用。而混沌系统对初始值敏感的特性,使得快速网络传输具有一定的不可靠性。因此,设计一个既能够实现混沌加密,又能够进行快速可靠网络传输的通用混沌保密传输系统是非常有必要的。FTP是TCP/IP的一种具体应用,工作在应用层,是基于TCP的服务,使用的是Client/Server工作模式,可以在不同平台之间提供可靠的网络传输服务。FTP在网络中的应用已经非常成熟,因此可以和混沌加密技术结合起来实现网络内混沌加密数据的可靠传输。
1 硬件实验平台
硬件平台使用的是友善之臂公司的Mini 2440开发板,集成了基于ARM920T架构的Samsung S3C2440A处理器,64 MB的SDRAM、2 MB Nor Flash和256 MB Nand Flash,配置了LCD显示器,并集成了DM 9000网络芯片,用于支持网络传输。RS232串口用于交叉开发过程中计算机与开发板之间的通信。该系统使用两块Mini 2440开发板,其中一块配置为FTP服务器,另一块配置为客户端。服务器与客户端通过路由器实现网络传输。硬件系统框图如图1所示。
2 混沌图像加密原理
混沌图像加密的原理如下:利用混沌系统的差分方程进行迭代运算,期间产生的变量序列用于生成加密密钥,与要加密的图像数据进行相应的运算实现数据的加密。在接收端进行相应的逆运算即可解密得到原始图像。产生的加密密钥又称为混沌序列,因此该方法称为混沌序列加密。由于混沌系统具有遍历性和非周期性,生成的加密密钥具有伪随机特性。
数字图像的加密方法主要有两种:第一种是直接加密算法,即将图像看作普通的数据直接进行加密,不利用图像数据的任何特性,对所有的数据进行加密处理;第二种是选择性加密算法,即在加密过程中,有选择性地加密图像的一部分关键数据。直接加密算法具有很高的安全性,加密之后数据格式被破坏,窃听者无法获知传输的数据格式,其缺点是加密速度较慢。选择性加密算法则保持了原有的数据格式信息和控制信息,只加密实际数据部分,因此具有良好的相容性。本系统使用的是选择性加密算法。
混沌序列是由混沌差分方程迭代产生的,因此混沌系统的设计非常重要。参考文献[2-3]提出了基于改进的Wang-Chen算法的离散混沌系统产生混沌序列的方法。服务器端使用的混沌系统方程如下:
3 FTP服务器的构建
VSFTPD(Very Secure FTP Daemon)是一种开放源代码的FTP服务器,广泛地应用于多种UNIX和Linux操作系统[4]。与其他开源的FTP服务器相比,VSFTPD可以提供更加安全易用的文件传输服务,因此在Linux系统中得到了广泛的使用。
在官方网站下载源代码文件后,需要经过编译将其移植到Mini 2440开发板上。首先修改Makefile文件,将CC字段更改为交叉编译工具arm-linux-gcc;然后需要修改vsf_findlibs.sh文件,并且将用到的动态库从编译器文件夹下复制到要制作的根文件系统中;生成vsftpd文件后,配置vsftpd.conf文件。需要注意的配置选项有几个,其中,anonymous_enable选项配置为YES,即允许匿名用户登录FTP服务器;local_enable选项配置为YES,即允许本地用户登录;write_enable选项设置为YES,即允许各种FTP写入命令;listen选项设置为YES,即设置FTP服务器工作在standalone模式,进程自动监听FTP请求[5]。
完成以上步骤后,将vsftpd和vsftpd.conf分别复制到根文件系统的/sbin和/etc目录下。最后利用busybox制作根文件系统[6]。如图2所示在配置过程中要选择busybox对ftpput/ftpget命令的支持,用于客户端与服务器之间文件的传送。
将编写的混沌加密程序文件复制到服务器端的根文件系统中,将解密程序复制到客户端的根文件系统中。利用友善之臂提供的mkyaffs2image工具分别制作根文件系统并烧写到对应的开发板上。
将根文件系统烧写至开发板后,还要在服务器端进行设置。VSFTPD服务器要求服务器端有nobody和ftp两个用户,而且需要在/usr/share目录下创建empty目录,在/var/log目录下创建vsftpd.log日志文件。
4 混沌保密传输系统的验证
将两块开发板通过路由器连接成为一个简单的局域网。服务器端对图像文件进行加密后,将加密后的数据放在FTP目录下面,然后运行“vsftpd &”指令,开启FTP服务器并使进程在后台运行。客户端使用ftpget命令从服务器端获取加密后的图像数据,并运行解密程序得到解密后的图像。实际硬件连接图以及加密效果如图4、图5、图6所示。
服务器端的原始图像为经典的Lena图像,在客户端通过FTP获取加密后的图像后,利用解密程序可以很好地还原出原始图像。
该系统的特点是利用FTP服务实现局域网内的混沌保密通信。经过验证,该系统能够利用FTP服务将混沌加密的图像数据可靠地传输到接收端。由于FTP在广域网中的应用已经非常成熟,因此该系统比较容易扩展至广域网中,进一步推动了混沌加密系统的实用化,具有很好的应用前景。
参考文献
[1] 王光义,袁方.级联混沌及其动力学特性研究[J].物理学报,2013,62(2):111-120.
[2] 陈关荣,汪小帆.动力系统的混沌化——理论、方法与应用[M].上海:上海交通大学出版社,2006.
[3] 凌大旺.基于离散混沌映射的数字图像加密技术硏究与实现[D].广州:广东工业大学,2012.
[4] 杨明华.Linux系统与网络服务管理技术大全[M].北京:电子工业出版社,2010.
[5] 罗彩君.基于Linux系统的FTP服务器的实现[J].电子设计工程,2013,21(11):40-41.
[6] 韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.