基于LFSR状态序列的混沌序列图像加密方案
2018-04-19邢宇航
邢宇航 李 敏
(火箭军工程大学 西安 710025)
(xianxyh404@163.com)
具备初值敏感性和伪随机性的混沌系统是非线性的.混沌映射是定义在实数域上的,然而由于计算精度问题,造成混沌序列有非常短的周期和不动点[1-3].近年来,图像加密成为了一个研究热点[4-11],基于混沌的加密算法多用在图像加密上.但是混沌序列的短周期限制了混沌系统的应用[12].解决有限精度的方法[13-18]主要有:一是增大参数空间;二是构造多维混沌系统;三是增加扰动;最后一个是增大混沌序列周期.增大参数空间不能根本上解决有限精度的问题;构造多维混沌可以避免不动点问题,但是其稳定性和数字化错误仍然存在;扰动可以避免有限精度短周期影响,但是扰动实际上改变了混沌系统的特性.
图1 线性反馈移位寄存器
由于计算精度的影响,混沌映射在迭代过程出现短周期现象.理论上,如果没有有限精度问题,混沌序列随机性是非常好的,但计算机是有精度要求的.增加扰动的目的也是不让混沌序列进入小周期循环,与其扰动,不如采用高精度,在有限精度内重置混沌映射初始状态.根据混沌映射初值敏感性,不同的高精度初始值得到的混沌序列不可能相同,利用这样得到的混沌序列作为加密序列是完全可以实现的.这种设计既不改变混沌序列本身随机特性,也能克服短周期序列的缺陷.同时,尽量在1个混沌序列周期内完成对图像的加密.如果需要加密大量明文图像,对明文图像进行分组即可保证使用的密钥流也在1个周期内.因此,只要确保每次加密使用的密钥流都在1个周期内,而且加密不同明文图像时使用不同的混沌序列,可以保证每次加密都使用不同的密钥流,而且根据混沌映射的初值敏感性,不同的初值得到不同的混沌序列,相当于一次一密.为了实现这种思想,需要解决混沌映射的初值生成问题,因此,本文设计由线性反馈移位寄存器(LFSR)状态序列作为混沌映射的初值生成算法,每给定一个128b的初值,就可以得到需要的连续不断的128b的LFSR状态序列,根据需要加密的明文图像的需求来决定实际需要多少个128 b密钥,尽管混沌序列存在短周期,但如果仅仅使用1个周期内的密钥序列,分析者就无法利用短周期的缺陷,从而保证明文图像的安全.
1 混沌映射初值生成
实际上,每给定一个初始状态,LFSR都能产生一条伪随机序列.当初始状态固定时,设计好状态转移矩阵,很容易获得状态序列和其任意组合的序列,而且可以获得非常大周期的伪随机序列,LFSR是根据初始状态和状态转移矩阵开始工作的.一般地,LFSR包含记忆存储单元和布尔函数(反馈函数),其中反馈函数是线性的,LFSR的结构如图1所示.
图1中,x1,x2,…,xn为寄存器每级存储单元,(xn,x n-1,…,x1)为移位寄存器的状态,n级移位寄存器的状态总数为2n个,而f(xn,x n-1,…,x1)是以状态中的元素为变量的移位寄存器的反馈函数.当移位寄存器的反馈函数(联结多项式)是本原多项式时,得到的输出序列就是m序列,m序列具有LFSR的最大周期2n-1,同时序列的随机性非常好.根据移位寄存器的特点,状态序列的周期和输出序列的周期是一样的.本文则利用这种特性,获取混沌映射的初始值.给定一个128 b的LFSR的初始状态,选择1个本原多项式,就会得到1条最大周期的状态序列,把每个状态的128b的0,1值,转化为混沌映射的初值.由于混沌映射定义在实数上,且计算精度最大有16位有效位,把128b的状态均分成32 b,然后转化为实数,作为混沌映射初值的小数部分,其整数部分为0,从而可以做成混沌映射的4个初始值.由于状态序列的周期足够大,可以保证得到连续不断的初始值来构造混沌序列,且由于LFSR的1步平移特性,连续的状态不会出现重复,加上混沌映射的初值敏感性,得到的混沌序列也不会发生重复.具体的初始值生成方法如下:
1)选择LFSR的初始状态(即初始密钥)产生并记下状态,不失一般性,产生的T个时刻的状态序列记为,并把每个状态均分为4组x1i,x2i,x3i,x4i,即
si=(x1i,x2i,x3i,x4i),0≤i≤T.
2)记x1i,x2i,x3i,x4i对应的混沌映射的初始值为x1(i),x2(i),x3(i),x4(i),混沌映射初始值计算方式为:
2 图像加密方案
2.1 图像置乱
一般地,图像加密有2个过程.第1个过程是置乱[19],对需要加密的图像像素进行混乱,消除图像像素之间的相关性,常用的办法是利用线性变换,即置换.原始图像的相邻像素的极大相关性会降低直接加密的安全性.本文采用对明文图像像素进行置换,即重新排序,为了增加置换对图像加密的安全性保护,这里同样采用混沌映射来设计置换函数,线性置换的实现思路如下所述:
1)根据明文图像实际大小情况,首先计算图像像素和像素个数.如果是60×60的灰度图像,那么总的像素个数就是3600.
2)利用第1个混沌映射初值产生1条混沌序列,任意截取3 600长度的混沌序列值,并按大小顺序对混沌序列进行排序.
3)利用步骤2)的排序结果作为明文图像像素的置换表,然后对明文像素进行新的排序和置乱.
4)把置乱后的图像保存即为置乱后的结果.
2.2图像扩散
实际上,根据2.1节的变换结果,像素已经得到了有效置乱.仿真结果表明,经过置乱,明文图像的相邻像素相关性已被打破,但这是一个线性变换,考虑明文图像的安全性,需要对明文图像实现扩散变换,即非线性变换.显然,这里用混沌序列对已置乱的图像进行加密变换.文中利用余下的3个混沌映射初值生成3条混沌序列,利用混沌序列对像素进行加密变换.具体的图像扩散过程如下:
1)根据需要加密的明文图像大小,首先计算像素和像素个数.如果是60×60的灰度图像,那么总的像素个数就是3600.
2)利用后3个混沌映射初值产生3条1个周期内的混沌序列,在1个周期内任意截取并保留每条序列3600×8个混沌序列值.
3)由于像素都是0~255之间的值,通过转化把每条序列3600×8个混沌序列值转化为0~255之间的值,然后建立3个混沌矩阵依次与像素值进行模256加运算,获得最终的矩阵值,即新的像素值.
4)把扩散后的图像保存即为加密后的密文图像.
2.3 加密算法
算法1.加密算法.
输入:明文图像P1,P2,…,P T,混沌映射及参数;
输出:密文图像P′1,P′2,…,P′T.
步骤:
1)计算明文图像P1尺寸M1×N1,同时建立图像像素矩阵;
2)选择LFSR的初始状态(即初始密钥)产生并记下状态,任意选择第t1时刻LFSR状态记为st1,并把st1均分为4组,x1i,x2i,x3i,x4i,每组32b,即
利用初始值x1(t1)得到混沌序列A1,截取任意M1×N1长混沌序列,根据大小排序建立混沌置换矩阵;
4)根据混沌置换矩阵把明文图像P1像素矩阵置乱得到P11;
5)利用混沌初值x2(t1),x3(t1),x4(t1)得到3条混沌序列A2,A3,A4,截取任意3条M1×N1长混沌序列,并把混沌实数序列二进制量化后与像素矩阵P11进行按位模加;
6)输出密文图像P′1;
7)利用上述加密思路,选择st2,st3,…,stT分别实现对明文图像P2,…,P T的加密,得到密文图像P′2,…,P′T.
实际上,算法1中的混沌映射的初值生成可以在预处理过程完成,对不同明文图像的加密可以并行进行运算,从而提高加密的效率.
3 实验和仿真
根据第2节的加密方案,算法的参数选择如下:
LFSR选择的是128级的移位寄存器,移位寄存器的生成多项式是128级的本原多项式
f(x)=x128+x29+x27+x2+1,初始密钥为:
不失一般性,本原多项式产生的移位寄存器序列的第1个状态即为初始密钥.实际应用时,可以从状态周期序列中任意时刻截取.
混沌映射函数选择Tent映射,其函数表达式如下所示:
这里取μ=1.9.混沌映射初值按下列方式获取:
是混沌映射的初值,由其得到的混沌序列用于明文图像置乱,也是混沌映射的初值,其获得的混沌序列作为图像扩散过程的加密密钥.Tent映射具有较好的遍历均匀性,是应用较为广泛的混沌映射之一,且易于实现和运算速度快.本文正是基于此,选择此映射作为加密方案的混沌映射算法.在实验中,对Tent映射的输出进行二进制量化时采用的是常规的量化函数:
仿真结果是以1幅图像为例,在Matlab环境中进行,采用双精度实数进行实验.
3.1 图像置乱实验结果
图2是图像置乱实验结果:经过置乱,像素得到重新排序后,已无法识别出原图像的特征,也就是说,从置乱后的图像无法直接获取原始图像的信息.如果想从置乱后的图像恢复原始图像,必须找到置乱矩阵,即混沌序列;或者利用穷举的办法,遍历所有的(256×256)!个置换.
图2 明文图像置乱对比图
图3 明文图像加解密对比图
3.2 图像扩散实验结果
图3是明文图像加解密实验结果,加解密效果较好.明文图像经过3个混沌序列加密后,不能从明文图像获得原始图像的信息.同时,由于3条混沌序列的初值不同,再根据混沌映射的初值敏感性,3条混沌加密序列是相互独立的,这样保证了初值的密钥空间足够大.只有获得3个初值,才有可能恢复出明文图像.同时,由于加密图像的混沌序列都在1个周期内,通过统计寻找明密文的规律是不现实的,如果一次加密的明文图像数量大时,又改变了使用的混沌初值,更无统计规律可言,即使个别密文被破译,也不会影响其他明文图像的安全.
3.3 图像直方图测试
图4是明文直方图和密文直方图的比较结果,显然,经过加密后,明文直方图得到了明显的改变,明文直方图的显著特征在密文图像中都不存在,密文直方图分布比较均匀,使得通过统计直方图寻求明文特征的统计攻击变得困难,能够抵抗统计攻击.
图4 明密文图像直方图对比
3.4 相关性测试
图5是图像的对角相关性实验结果:经过加密的图像的对角方向相关性明显降低,相关性值的分布非常均匀,表明经过加密后,对角方向上像素的相关性得到了降低,不能从密文图像的像素相关性来找明文的像素相关性.同理,水平和垂直方向的相关性亦有同样的结果.
图5 明密文图像对角像素分布对比
3.5 密钥空间分析
密钥空间大小是衡量算法安全性的重要指标,其可以直观看出算法能否抵抗穷举攻击.本文加密方案中的混沌映射的初值x1(i),x2(i),x3(i),x4(i)生成的混沌序列相互独立,因此,LFSR的初始密钥的长度是128b,整个方案的密钥空间就是2128,能够抵抗穷举攻击.
4 结 论
本文提出了一个针对批图像处理的混沌序列加密方案,该方案可以克服混沌加密系统密钥空间小和有限精度问题,保持混沌映射的特点,利用混沌映射的初值敏感特点,通过设计混沌映射初值,进而实现混沌加密方案的设计.为了保证混沌加密系统的安全性,初值生成利用了LFSR的128 b状态序列,保证了初值生成过程的安全性.为了消除混沌系统的短周期问题,在对明文图像进行加密时,采用了一次一密的思想,并利用多轮混沌加密的思想,在保证密钥空间足够大的同时,使得密钥和明文进行充分混合,进而达到扩散的目的.同时,初值生成算法可以获得连续的不同的密钥序列,可以对大量图像进行并行加密操作,实现了图像的批加密功能.又由于每幅图像加密的密钥序列均不相同且仅使用1个周期内的混沌序列进行加密,达到了一次一密的加密效果,保证了明文图像的安全性.
[1]Li Chunhu,Luo Guangchun,Qin Ke.An image encryption scheme based on chaotic tent map[J].Nonlinear Dynamics,2017,87(1):127-133
[2]Huang X L.Image encryption algorithm using chaotic Chebyshev generator[J].Nonlinear Dynamics,2012,67:2411-2417
[3]胡英辉,罗军,苏辉.一种改善混沌序列有限精度效应的新方法[J].系统仿真学报,2012,24(11):2349-2352
[4]翟依依,王光义.基于Tent混沌序列的数字图像加密方法[J].现代电子技术,2014,37(12):73-77
[5]Li J,Li X,Yang B,et al.Segmentation-based image copymove forgery detection scheme[J].IEEE Trans on Information:Forensics Security,2015,10(3):507-518
[6]Sui Liansheng,Xin Meiting,Tian Ailing.Multiple-image encryption based on phase mask multiplexing in fractional fourier transform domain[J].Optics Letters,2013,38(11):1996-1998
[7]Sui L,Gao B.Single-channel color image encryption based on iterative fractional fourier transform and chaos[J].Optics Laser Technology,2013,48(7):117-127
[8]Abuturab M R.Security enhancement of color image cryptosystem by optical interference principle and spiral phase encoding[J].Application Optics,2013,52(8):1555-1563
[9]Volos C,Kyprianidis I,Stouboulos I.Image encryption process based on chaotic synchronization phenomena[J].Signal Process,2013,93(5):1328-1340
[10]Wang X,Teng L,Qin X.A novel colour image encryption algorithm based on chaos[J].Signal Process,2012,92(4):1101-1108
[11]Li Xiaowei,Li Chengqing,Lee In-Kwon.Chaotic image encryption using pseudo-random masks and pixel mapping[J].Signal Process,2016,12(5):48-63
[12]刘嘉辉,张宏莉.基于可扩展精度的Logistic混沌随机序列的并行计算方法[J].2011,41(9):834-845
[13]张永红,张博.一种改善混沌序列有限精度效应的新方法[J].计算机应用研究,2015,32(6):1770-1773
[14]Akhshani A,Akhavan A,Lim S-C,et al.An image encryption scheme based on quantum logistic map[J].Communications in Nonliner Science and Numerical Simulation,2012,17(12):4653-4661
[15]Zhang W,Wong K,Yu W,et al.An image encryption scheme using reverse 2-dimensional chaotic map and dependent diffusion[J].Communications in Nonliner Science and Numerical Simulation,2013,18(8):2066-2080
[16]El-Latif,Li L,Wang N,et al.A new approach to chaotic image encryption based on quantum chaotic system,exploiting color spaces[J].Signal Process,2013,93(11):2986-3000
[17]何朗日,李萍,陈水华.基于m序列持续扰动Logistic混沌序列的视频加密及FPGA实现[J].激光杂志,2015,36(9):56-59
[18]Papamarkou T,Lawrance A J.Nonlinear dynamics of trajectories generated by fully-stretching piecewise linear maps[J].International Journal Bifurcat Chaos,2014,24(5):1450071
[19]朱晓升,廖晓峰.基于图像分区的置乱算法[J].计算机技术与发展,2015,25(12):52-55