陈 平,陈宝桔
(广东工业大学 自动化学院,广东 广州 510006)
随着互联网技术和云技术的发展,电子文件的通信以及云端存储已经成为日常工作的一部分. 然而在复杂的网络环境中,电子文件的安全隐患不容忽视,其主要风险是文件窃取,内容篡改和信息泄露等,从而导致电子文件数据的真实性、完整性、可读性和保密性等安全属性遭受破坏[1-2]. 近年来大型的信息安全事故频发,典型的有2017年黑客入侵雅虎的用户账号,2016年美国遭遇希拉里邮件门,2015年网易邮箱数据泄密等[3].
为了提高电子文件的信息安全,人们提出了多种文件加密方法. 其中有基于DES (Date Encryption Algorithm)及其改进算法的文件加密方法,综合利用了三重DES算法与独立子密钥算法的优点,把原来的64位密钥扩展为128位,通过双重加密,同时采用局部密钥独立的特性提升了加密强度和效率[4];基于Xposed框架的透明文件加解密方法,其以SharedUserId和开发者签名信息为标识自动生成密钥,将各个APP的数据以不同的密钥加密处理,这样即使在恶意APP获取到了Root权限,仍能保护各APP的隐私数据不被非法获取,从而提升了Android设备的安全性[5];一种基于安全局域网分级文件分发的方法,实现了网络文件的分级可控管理,除了能够防范来自系统外部的普通网络攻击行为外,确保了对系统合法用户操作行为的控制,有效阻断了内部人员信息泄露的基本途径,能够提高各类共享数据的安全性[6];基于混沌理论的加密方法,利用混沌对参数和初始位置的敏感性、类随机特性和遍历性的属性进行加密[7-9].
本文基于混沌反控制理论[10-11],提出一种新的混沌加密算法对电子文件进行加密. 其一般原理是基于渐近稳定的维离散系统进行反控制,生成维混沌系统,接着利用混沌系统进行加密算法的设计,最后在密钥匹配和失配条件下进行解密验证[12]. 根据以上原理,本文利用反控制生成三维混沌系统,对两个三维系统的状态变量相乘、取模之后加密文件数据,分别在密钥匹配和失配的条件下进行实验验证,获得良好的实验结果.
为了避免加密算法对文件格式造成破坏导致文件打开失败或者格式不兼容的问题[4],本文采用选择性加密的方法,其思想是加密文件的数据部分,保留格式部分不加密处理[13]. 本文选取一类格式相对简单的文件比如wav和bmp等多媒体文件进行实验测试,分析出文件的格式和数据两部分,只选取数据部分进行加密处理. 通过理论证明、软件仿真和硬件测试等手段验证了加密算法具有良好的安全性和技术可行性.
本文采用混沌反控制理论设计三维离散时间混沌系统. 目前在工程应用中被广泛采用的混沌判据主要有两条,即具有正的李氏指数和轨道全局有界[14-15]. 根据以上两条判据,给出混沌系统的具体设计步骤如下.
(1) 设计渐近稳定的标称系统的一般形式为
式中x(k)∈Rn,满足标称矩阵的特征根全部位于复平面的单位圆内,使得标称系统渐近稳定.
其中P为非奇异矩阵. 得相似变换后的标称系统为
满足式(1)和式(3)具有相同的特征根和稳定性.
(4) 利用控制矩阵B和反控制器g(σxk,ε)对受控系统式(4)进行极点配置,经极点配置之后,正李氏指数个数能够达到最大值3. 可见系统式(4)具有正的李氏指数和轨道全局有界,因此可判定为混沌系统.
选取三维系统作为典型实例,根据式(1)~(4),得对应混沌系统迭代方程的一般形式为
其中标称矩阵A的 表达式为
对应的特征根均位于单位圆内,标称系统渐近稳定.g(σx1(k),ε)= εsin(σx1(k))为一致有界的反控制器,ε和σ 为控制参数. 在式(5)中,选取参数 ε=3;3×108,σ=2;5×105,采用Wolf李氏指数计算方法[16]得到LE1=14;5,LE2=14;4,LE3=0;16,可知具有正的李氏指数,因而式(5)可判定为混沌系统.
参照式(5)和式(6)的形式,为混沌系统选取第二组密钥参数,得
经计算得到李氏指数为LE1=14;9,LE2=14;8,LE3=0;19,可知具有正的李氏指数,因而式(5)和式(7)可判定为混沌系统.
对式(5)和式(6)的混沌系统进行仿真,得到吸引子相图如图1所示,图1(a)为相平面x1-x2,图1(b)为相平面x2-x3. 同理可仿真得到式(5)和式(7)的混沌吸引子相图.
根据式(5)~(7)进一步设计混沌加密和解密算法,算法对应的混沌加密迭代方程的数学表达式为
图1 三维离散时间混沌系统的吸引子相图Fig.1 The attractor of the 3-D discrete time chaos system
由于采用对称密码体制,混沌解密算法是加密算法的逆运算过程,算法对应的混沌解密迭代方程的数学表达式为
其中加密信号p(k)的数学表达式为
文件的通信过程可能受数据丢失和损坏等实际问题的干扰造成解密失败,在密钥匹配的条件下,解密算法能够在数据受到干扰之后迅速恢复正确的解密功能,我们称之为自同步. 假设加密和解密的密钥参数匹配为
同时由于加密数据p(k)受到干扰之后,式(8)和式(9)的状态变量已经出现差异造成失步. 为了证明加密算法和解密算法具有自同步功能,将式(9)中的第2~3个方程与式(8)的第2~3个方程相减,可得误差迭代方程
进一步得到
其 中 Δx2(0)和Δx3(0)为 初 始 值 ,,对式(11)取范数,得
其中i=2,3,同理可证明当i=5,6时式(13)仍然成立.
根据式(8)~(13),可得式(8)第一个方程的误差迭代方程
根据式(11)~(15)的理论分析,对加密算法和解密算法的自同步过程进行仿真,在密钥匹配的条件下,当密文在传输过程受干扰之后所得到的自同步仿真图如图2所示. 迭代误差随着迭代次数的增加逐渐趋向于零,实现自同步功能.
图2 自同步迭代过程仿真图Fig.2 The simulation figure of self synchronization
本文从密钥敏感度、攻击复杂度和差分分析3个方面对加密算法的安全性进行分析.
(1) 密钥敏感度分析.
密钥敏感度主要测试密钥参数对解密的敏感性,解密算法中一个密钥参数发生微小的失配能够导致解密失败. 参数敏感性测试数据如表1所示.
表1 参数敏感度测试Tab.1 Keys sensitivity test
从表1可知加密算法具有良好的敏感度,密钥参数微小的失配能够引起解密失败.
(2) 攻击复杂度分析.
根据密钥参数以及敏感度可计算攻击复杂度
从式(16)可知加密算法具备良好的攻击复杂度.
(3) 差分分析.
差分分析主要测试密文对明文的“雪崩效应”,明文微小变化对密文产生的影响. 一般采用NPCR(Number of Pixels Change Rate) 和UACI (Unified Average Changing Intensity)两个指标来表征. 以图像加密为例,UPCR和UACI的数学表达为
其中C(i,j)和C′(i,j)分别是明文单个像素变换前后的加密图像,W和H分别表示图像的长和高,i=1,2,···W,j=1,2,···H,C,C′和D(i,j)的表达式如下:
NPCR和UACI最理想的理论值分别为0.996 094和0.334 635,经过测试,加密算法的NPCR为0.995 9,UACI为0.334 4,达到了良好的效果.
将加密算法应用到wav音频和bmp图像两类文件中. 为了避免破坏文件的格式,在加密之前先进行文件格式分析,并且只针对文件的数据部分进行加密,保留格式部分不作任何加密处理.
wav音频文件格式以及加密方式如图3所示,其中数据块为音频数据,数据块大小由数据总长度的值标示出来.
图3 wav文件格式Fig.3 The file format of the wav file
bmp图像文件格式以及加密方式如图4所示,其中图片点阵数据为像素数据,数据大小由图片尺寸以及调色板的表项值共同决定,调色板大小由 表项值决定,表项biBitCount的值为1、4、8和24时,分别对应2、16、256和0个表项.
图4 bmp文件格式Fig.4 The file format of the bmp file
文件加密系统的硬件方案如图5所示,系统硬件包括上位机,路由和SOPC (System on a Programmable Chip)平台3部分. 其中上位机实现文件数据部分的网络通信,SOPC平台实现数据的网络通信,加密和解密功能. 图5中,通道1为加密通道,通道2为解密通道,开关k1和k2受上位机的控制同时切换到1通道或者2通道;为原始的文件数据为解密后的文件数据,为混沌加密算法迭代产生的加密序列,为混沌解密算法迭代产生的解密序列,为加密数据,其中混沌加密和混沌解密功能全部由FPGA实现.
系统软件包括上位机软件和ARM软件两部分.上位机软件执行流程图如图6(a)所示,其中格式分离是指上位机从文件的数据部分开始发送;数据合成是指将接收到的数据按顺序从文件的格式之后存入. ARM的软件执行流程图如图6(b)所示,通道1为加密通道,通道2为解密通道,根据上位机的控制,SOPC同时切换k1和k2进入加密模式或者解密模式.
图5 文件加密系统的原理框图Fig.5 The block diagram of the file encryption system
图6 系统的软件执行流程图Fig.6 Software execution flow chart of the system
以PC作为上位机,以Xilinx ZC7020开发板作为下位机,上位机和下位机通过路由器连接,配置上位机IP地址为:192.168.1.100,下位机的IP地址为:192.168.1.101,端口为8080. 通过Vivado 2014.1软件编写加密算法和解密算法,并下载程序到下位机并运行. 采用Network软件编写上位机软件,人机界面如图7所示,填写IP和端口信息,选择加密或者解密模式,点击连接按钮进行网络连接,点击打开文件按钮选择需要处理的文件,点击发送和接收按钮开始下传,加密或者解密和上传等操作.
分别对wav音频文件和bmp图像文件进行实验测试,wav文件测试结果如图8所示. 从实验结果可知,加密算法能够有效加密音频数据,形成均匀分布的统计特性,在密钥匹配的情况下解密算法能够正确解密音频数据,否则解密失败,解密数据仍然均匀分布.
bmp图像的实验测试结果如图9所示. 由实验结果可知,加密算法能够有效加密原始图片,在密钥匹配的条件下解密算法能够正确解密图像数据,否则解密失败,解密图像为雪花点状.
图7 上位机人机界面Fig.7 The user interface of the host computer
图8 wav文件实验测试结果Fig.8 The tset result of the wav file
本文采用混沌反控制理论设计三维混沌系统,利用2个三维混沌系统联合生成加密序列对文件数据进行加密,经过安全测试证明加密算法具有良好的安全性能,并通过自同步的设计解决了信道干扰影响解密的问题. 为了避免破坏文件格式导致格式不兼容的问题,加密算法只加密文件的数据部分,格式部分保持不变. 最后对文件加密系统进行硬件和软件设计,实验结果证明了算法的技术可行性. 研究工作不足之处在于文件加密系统只能应用于wav和bmp等格式简单的文件,对于诸如JPEG和H.264具有复杂格式的文件无法适用,未来的研究工作是继续分析其他文件的格式,进一步提高文件加密系统的适用范围.