2.3.1混沌映射
我们再来讨论关于文[34]提出了一种离散非线性的混沌系统,该系统是一维线性混沌映射的推广,其生成结果是任意区间上的整数值混沌序列,在该文中并没利用它对图像进行加密,只讨论了混沌序列的生成方式。本章将利此混沌映射,通过迭代方式生成混沌序列,该迭代映射复杂度更高,而且生成整数值混沌序列仍然具有混沌特性。然后用生成的混沌序列直接加密图像,即同时改变象素的灰度和每一象素的位置,易实现、计算花费少,加密的实验结果表明其保密性很好,加密后的图像可以完全正确的还原成原始图像。
在文[48]中提出了一个具有良好随机统计特性的一维非线性混沌影射,由它生成的混沌序列为某一区域上的整数值混沌序列,具有随机性,且对初值极其敏感。下面简单的介绍一下该混沌映射,其定义如下::
                     
 
 混沌影射(2.5)经过n次迭代后形成新混沌影射(2.6 }(即为下面要运用的影射),同样具有上述影射(2.5)的混沌特性,如下所示:
                                           (2.6)
当给定初始值xo,参数a,m的值和迭代次数n的值就确定了由混沌系统(2.6)生成混沌序列:{ xk;k=0,1,2,3...},该序列具有混沌特性,对初值条件州x。极为敏感。本章把参数a与n也作为初始条件,即把有序数组(xo,a,n)一起作为密钥,则攻击混沌系统(2.6)成功的概率比只把x。作为密钥时攻击成功的概率更小。
举例说明混沌影射(2.6)生成混沌序列的具体过程。例如:产生[[1,371]的一个整数混沌序列,取参数m =371, a =205,下表为混沌序列产生过程,表第一行为迭代次数n,第一列为xk,表中为对应某一xk,n的xk+1 :
 
2.2.2新算法的设计与实现
    利用混沌系统(2.6)生成的混沌序列加密图像,即改变图像象素的位置,同时也改变图像象素的灰度值,并且不需要通过生成变换矩阵,而是直接用混沌序列来加密,使得该算法简洁、易实现。
设原始图像为IR,设(i,j,g(i,j))表示这一张图像,(i,j)为某一像素标值,g(i,j)
表示该像素的灰度值,这一张图像的大小为M*N.其中0≤i≤M-1,0≤j≤N-1。L为该图像的灰度水平。
加密算法如下:
Step 1:输入M,N,原始图像    IR=(i,j,g(i,j))。
Step 2:输入一维混沌影射(2.6)的初始值xo,设置参数a,m的值和迭代次数n的值,用混沌影射(2.6)生成混沌序列:x0, x1, x2,……,xM +N-1。
Step3:
                  for i=0 to  M一1
                      Xi=xi modN
                      for j=0 to  N一1
                        if j+Xi  N
                          
                            end
                        end
利用第二步生成的混沌序列将图像的每行象素右移(循环移动)变换到该行的另一位置,象素的灰度值小改变。变换得到的图像为:(i,j,g1(i,j))。
Step4:
for j=0 to  N一1
    Yj=xM+j modM
    for i=0 to M一1
      if  i+Y j>_ M
        
    end
end
这一步在第三步得到的变换结果(i,j,g1(i,j))的基础上,利用第一步生成的混沌序列将图像的每列象素向下移动(循环移动)变换到该列的另一位置,象素的灰度值不改变。变换得到的图像为(i,j,g2(i,j)): 
Step 5::重新输入一维混沌影射(2.6)的初始值x0',设置参数a',m'的值和迭代次数n'的值,用混沌影射(2.6)生成混沌序列:: 
Step 6:将第四步得到的结果(i,j,g2(i,j))的每一象素的灰度值改变。
for i=0 to M-1
                     .for .j=0 to N-1
                           
                              end
                        end
得到加密图像的各个象素的新的灰度值 ,生成加密图像 
Step 7:终止算法。