基于logistic映射和时空混沌系统,我们设计了一个密钥长度为256 bit的图像分组加密算法,将256 bit的明文图像分组加密为等长的密文图像。该加密算法引人的辅助密钥和设计的迭代次数敏感地依赖于明文分组和密钥,交替迭代混沌系统及Arnold映射实现了像素值的扰乱和位置置乱,接下来我就给您详细介绍一下。
一、混沌系统
logistic映射是一种在混沌密码中常用的一维离散动态自治系统,可以通过微小的改变参数值或初值来产生完全不同的伪随机序列。其动力学方程为:
式中:μ∈ [0,4]被称为Logistic参数,初值X0∈(0,1);xi为状态变量在第i次迭代的值,随着参数μ的增加,系统(1)不断地经历倍周期分叉最终达到混沌状态。当控制参数满足3. 599 456 <p≤4时,对于不同的初值,迭代生成的状态值均处于伪随机分布的混沌状态,时空混沌系统的基本模型——耦合映像格子( coupled map lattices,CML)是由日本学者Kaneko提出来的,耦合映像格子在时间上和空间上均具有混沌行为,有多个正李雅普诺夫指数,其定义如下:
式中:n为离散时间步数;i =1,2,…,L为离散格子的坐标;xn(i)为第f个格子在n时刻的状态;耦合系数ε∈ (0,1);L为系统尺寸;f为演化规则,边界条件满足xn(0)=xn( L),局部映射厂可取扩展帐篷映射:
式中,α,β为常数且0<α,β<1,α≠β。fα(β)≠α,当xi∈ [O,1]时,系统处于混沌状态。
时空混沌具有不可逆性,有优于低维度混沌系统的良好的混淆和扩散特性以及对初始值和参数的敏感性等特性,当初始条件为[0,1]内的随机数,参数α=0.5,β=o.1,L=16,ε=0.05时,耦合映像格子系统呈现如图1所示的混沌行为。
二、基于交替迭代混沌系统的图像加密算法
本文加密算法分为两部分:像素值扰乱和像素位置置乱,第一部分由256 bit的明文产生256 bit的密文,主要完成对明文像素的扰乱。明文分组在加密过程中使用了一个基于明文和密钥变化而变化的辅助密钥,首先从初始条件出发交替迭代logisLic映射和扩展帐篷( tent)映射生成序列,该序列驱动映像格子快速产生时空混沌序列;然后将此序列比特串做循环左移运算得到新序列,与明文像素分组异或产生密文像素分组.算法的关键是辅助密钥和混沌置乱序列的产生,明文像素分组的加密过程如图2所示。
第二部分作像素位置置乱,首先将生成的各个密文像素分组,用Matlab软件的矩阵成型函数reshape()将各个分组组合成矩阵的形式,重新置乱矩阵的各位置,得到加密的密文图像。本文采用二维Arnold混沌映射来完成像素位置置乱。
1、加密算法原理
一种安全性好的加密算法不仅要求密文敏感地依赖于密钥,也要求其敏感地依赖于明文,并且密文在密文空间中均匀分布。本加密算法引入的辅助密钥,既依赖于明文图像的大小和像素值,又依赖于密钥,使得不同的明文或密钥每次都会产生不同的辅助密钥,辅助密钥的构造方法是:首先求出明文大小N×N、明文分组像素值之和以及密钥之和,三者相乘的结果再作模256运算,最后除以256生成一个(0,1)之间的辅助密钥.由于混沌初值对明文已经有很强的依赖作用,这种辅助密钥对混沌初值和参数的调制作用(相乘),增加了算法对明文和密钥的敏感性,可以抵抗差分攻击[12J和已知明文攻击;同时增大了密钥空间,使破译者的穷尽搜索攻击变得更加困难。加密算法设计的混沌迭代次数是对明文分组和密钥之和作模256运算,这种设计使混沌迭代次数可以根据分组和密钥的不同来动态的选取。
混沌密码分析方法主要是根据所截获信号的混沌动力学行为来重构相空间,得出混沌映射的数学表达式,再通过分析大量的明文一密文对获得加密算法,甚至破译出整个明文或密钥,交替迭代logisLic映射和扩展帐篷映射生成随机序列的方法,增强了算法的扩散效果,能有效避免单混沌系统由于信号的泄露而导致的相空间重构攻击。交替迭代式(2)和式(3)生成的序列对初值有很好的敏感性,如图3所示,横坐标表示迭代次数,纵坐标表示生成序列的取值范围(0,1),在依次迭代200一400次,初值为xo=0.566 358和y0=0.566 359时,序列的分布差别很大。
交替迭代后耦合映像格子生成的序列(类似于图1)具有很好的密码学特性,比单混沌的生成序列具有更好的随机性和相关性;序列的线性复杂度高,初始值X0=0.566 358在图1的参数控制下演化,取长度为256 bit的生成序列,按照Berlekamp-Massey算法计算的线性复杂度为127。十分逼近于理想值256/2=128,说明生成的序列有理想的线性复杂度,具备很好的抵抗线性攻击的能力;易于批量的生产,非常适合于图像加密领域。
基于以上因素,本文采用交替迭代混沌系统的方法,在辅助密钥的控制下扰乱像素值,并对像素位置置乱进行加密。
三、本文加密算法与传统分组加密算法的比较
处理复杂度和数据复杂度是加密短发可靠性的两个衡量标准,分别用来说明处理数据的计算量和攻击所需的数据量,由于本文加密算法基于混沌系统,与传统分组密码算法AES、DES过程完全不同,故只需比较处理复杂度,处理复杂度通常以密钥穷尽搜索攻击的复杂度表示,所以需要考察算法的密钥空间来比较两者的处理复杂度。本文算法的主密钥空间已达2的256次方,与AES、DES加密算法相比显然提高了很多,因而本算法具有足够高的处理复杂度,比较结果详见表2。
小知识之迭代
迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。