针对低维混沌序列加密数字图像保密性较差的问题,我们提出了一种复合混沌序列和基于混沌序列的位图图像文件加密算法。
一、混沌序列生成
混沌应用于数字图像加密的关键是混沌序列的随机性,针对低维混沌序列的短周期问题。这些算法的一个共同特点是采用m序列控制混沌方程的参数,使其在迭代过程中作周期变化.这样做有两点不足:
①短m序列控制下的参数个数有限,容易被破解,而长所序列生成过程复杂,增加了计算量的开销;
②没考虑到混沌方程在参数变化时的混沌特性,影响了序列的分布。
我们采用的复合混沌序列由Logistic混沌子序列和Henon混沌子序列生成,并对基于Logistic映射的混沌子序列生成方法进行改进。
1、Logistic混沌子序列
Logistic映射是一种可产生混沌的非线性系统,其模型为:
式中:0<μ≤4,0<x<1,n∈N;μ为分岔参数;xn在区间[0,1]上遍历,图1是Logistic映射的分岔图,取μ00=3.569945......,研究表明:当μ00<μ≤4时映射处于混沌状态。
生成混沌序列的改进方案如下:
①采用Chebychev映射控制参数μ,其迭代方程为:
当参数k=6时,Lyapunov指数为1.791733…,Chebychev映射处于混沌状态。用此混沌方程的迭代输出作为Logistic映射的控制参数,将极大增加户的变化量,从而增大了Logistic子序列的周期。Chebychev映射的迭代值域为[-1,+1],应通过线性映射变换到Logisric映射参数μ的变化区间。
②调整参数B的取值区间,混沌动力学研究表明,即使Logistic映射处于混沌区(μ00<μ≤4),情况也比想象中的复杂,即出现所谓的倒分支现象(见图1)。当μ=4时,Logistic映射在[0,1]上出现混沌,称为单片混沌,当μ逐渐减少时,开始仍为单片混沌,但当μ减少到一个值μ1=3.678 573.....时,会由单片混沌变成2片混沌,即迭代值分布在2个区域,每一次迭代数值从其中一个跳到另一个。当μ值再减少到p2=3.592 572......时,2片混沌又分为4片,μ值继续减少,将产生8,1 6,32等倒分支,倒分支一直延续到f,尽管迭代序列仍是混沌的,倒分支的出现还是影响了序列的随机分布特性,所以取μ值的变化区间为[μ,4]来改善序列的随机分布性能。
③从Logistic混沌分岔图(图1)可以看出,在混沌区除了μ=4的迭代值域为[0,1]外,其他μ值迭代值域都小于这个范围。
计算表明,取定μ值的迭代值上界为μ/4,下界为(1一μ/4)μ2/4。为了保持迭代序列在整个[0,1]区间的分布特性,可以通过一个线性变换使每个参数μ下的迭代值域变换到[0,1]区间,不难得到:
用上述方法产生的混沌序列的优点为:参数μ的变化数目远大于由m序列控制生成的μ值数目;消除了参数μ作用下混沌方程迭代输出值域的差异性。由于实际应用中需要的是混沌二值序列或混沌整数序列,这种差异性的消除对于转化后序列的统计性能是有益的,为了保证迭代序列的混沌特性,可以在某一声值作用下迭代p次后再输出一个有效迭代数值。图2是用两种方法生成的混沌序列自相关函数R(n)对比图,图中虚线由m序列控制参数卢的Logistic映射序列得到;实线由上述改进方案的生成序列得到。从图中可以看出改进方法生成序列的统计性能好于前者。
2、复合混沌序列
Henon映射方程组为:
当取a=1.4,b=0.3时。Henon映射产生二维混沌,其混沌轨迹的复杂程度远大于Logistic映射,由式(4)做迭代运算可得到混沌序列。
复合混沌序列是复合上述两个低维混沌子序列为一个序列,用于图像矩阵的置换加密,以增强加密强度,首先将它们变换为二值序列,再按对应位做异或运算得到复合序列。
复合序列的主要优点是保密性优于通常的低维混沌序列。这是由于低维混沌序列很容易受到混沌模型重构方法的攻击,而复合运算掩盖了混沌子序列的分布特性,改变了原混沌系统的动力学行为,有效地抵制了模型重构攻击算法,相对于高维混沌序列,复合序列的计算量较小,因为通常的低维混沌系统模型都是用代数方程描述的,求解速度很快;而高维混沌一般为复杂的微分或差分方程组,求解的复杂度和计算量都比较大。
二、图像文件加密
1、加密算法描述
对图像矩阵采用置乱和置换两种加密算法,置乱加密是对图像矩阵中的数据位置重新排列,数据值并没有改变;置换加密则改变了图像矩阵的数据。两种加密方法的基本区别在于后者改变了图像的直方图,一幅图像对应一个直方图,但一个直方图并不一定只对应一幅图像,置乱加密正是利用这一性质对图像进行加密的。
置乱加密是经典的图像加密方法,有基于Arnold变换、Hilbert曲线变换的置乱方法,及幻方像素置乱和基于扫描模式的置乱方法。基于矩阵变换的方法是一种线性变换,其保密性不高;Arnold变幻的图像置乱算法有其动力学系统的可恢复特征:而幻方矩阵也是由有限域上的元素组成的,因而很容易受到唯密文迭代攻击。基于混沌序列的移位置乱方法可以克服上述缺点,原算法以混沌序列为参数,按行列顺序置乱图像,抗攻击性较弱。为了增加置乱的随机性,作者做了以下改进。
设得到的2个混沌整数序列分别为pi,Qj(i,j=1,2.…,n)。设原图像矩阵为B(bij)(i,j=1,2.…,n)。置乱过程是把矩阵中的各行和列分别随机循环移位从而达到重组像素位置的目的.行移位操作:把pi,Qj组成一组有序整数对(pi,Qj),(p2,q2),…,(pn,qn),P1作为置乱过程的行定位值,q1作为置乱过程的列移位值,每行按以上有序整数对做循环移位操作,例如:当p1=3,q1=4时就把矩阵B第3行所有元素循环向右移动4个位置;列移位操作步骤与行移位相似,不同的是有序整数对是(qn,P1),(qn-1,p2),…,(q1,pn),循环移位方向从上至下、行、列移位交替进行,加密效果会更好。
目前大多数的置换加密算法是将图像矩阵的每个元素值完全置换,当图像较大时计算量很大,本文中采用图像矩阵的位平面置换算法。用一个二值混沌序列生成多个与待加密图像矩阵大小相同的位平面矩阵{wk(k=1,2,…,8)},把待加密图像矩阵变换成二进制数表示的形式Y。矩阵的每一元素用8位二进制数表示,这样y共有8个位平面矩阵{yk(k=1,2,…,8)},把矩阵Wk和矩阵yk对应元素做异或运算,生成密图矩阵yMk,试验表明原始图像只要加密3个位平面就可得到相当好的效果,即YMk=yk(8≥k≥4)。
2、图像文件加密过程
图像文件加密要用到整数序列和二值序列两种混沌序列,前者用于置乱加密,后者用于置换加密。考虑到实际需要的整数混沌序列长度有限,可采用前述Logistic混沌子序列和排队法生成。
整个图像加密过程分为空域加密和小波变换域加密两部分,具体加密过程为:
①对原图像矩阵TY做一次置换加密,得到置换加密后的密图矩阵TM1。
②选定小波函数如Harr小波,对TM1做一次小波分解得到4个系数矩阵,由小波分析理论可知它们属于不同的频率子带,分别对4个系数矩阵做置乱加密得到4个加密系数矩阵,用于4个加密系数矩阵的混沌序列是不同的,它们由一个混沌序列分段截取生成,这佯避免了生成混沌序列时多次选择迭代初值。
③对加密后的小波系数矩阵做小波重构运算,得到空域加密图像矩阵TMz,对TM2做一次置乱加密,得到最终的密图矩阵TM。
需要指出的是,把置换加密放在空域置乱加密之前可以增强置乱加密的抗攻击能力,原因是置换加密的结果隐蔽了置乱加密,所以靠收集图像特征的置乱加密破解方法是不可行的,而相反的顺序则会增强置换加密。
三、试验结果
加密过程的多个参数用于生成各种混沌序列,它们可以由统一的密钥得到。试验中选取混沌方程的迭代初值为0.3876111111111111,用于解密的混沌序列的迭代初值为0. 3876111111111112。图3是原图像加密、解密后的图像。从图中可以看出,即使迭代初值相差0.0000000000000001,也丝毫不能解密出原图,而且从密图上根本看不出原图的痕迹,正确初值则可以完全无失真地解密出原图像。这说明采用本加密方法的密图可以完全依赖密钥而不依赖于算法,这也是现代密码学发展的趋势,上述两次解密运算的算法相同,由于解密过程采用了置换运算,所以图3c(错误密钥的解密图像)与解密前密图的直方图有所不同。
小知识之扫描模式
扫描模式是指条码设备在读取条码信息时所采用的方式,一般的划分方式如下: 按照读取设备所采用的读取方式可分为:CCD和激光两种扫描模式。