1.一种超混沌伪随机序列的图像加密方法,其特征在于:包括如下步骤:步骤1、采用四阶超混沌Chen系统产生伪随机序列,所述的四阶超混沌Chen系统是一个四阶微分方程公式(1)中的x′1,x′2,x′3,x′4为状态参量,x1,x2,x3,x4为系统参量,w1、w2、w3、w4、w5均为系统参数;设定四个初值x1_0、x2_0、x3_0、x4_0,并提供初始时间点t_0、结束时间点t_1,以及步长h,对公式(1)用四阶Runge-Kutta进行求解,输出超混沌伪随机序列{x1}、{x2}、{x3}、{x4},初始值作为密钥;
步骤2、对原图像进行预处理,扰乱像素位置:扰乱关系如公式(2)所示;
其中i、j为原始图像的坐标,i′、j′是变换后图像的坐标,图像大小为N×N,N为任意整数,a、b为常系数;
步骤3、用超混沌伪随机序列对像素位置的行列做动态变换;
步骤4、用超混沌伪随机序列对像素值做动态处理得到新的图像Prc;
步骤5、对图像Prc进行加密。
2.根据权利要求1所述的超混沌伪随机序列的图像加密方法其特征在于:所述步骤3用超混沌伪随机序列对像素位置的行列做动态变换,具体为:令P是m×n的灰度图像,其表示方式如(3)所示:
下标(1×1,1×n,…,m×1,m×n)表示像素的位置序号;
定义行变换参数r
r=mod((abs(x1)-floor(abs(x1)))×1014,m) (4)其中mod表示取余运算,abs表示取绝对值运算,floor表示取整运算;x1表示超混沌Chen系统伪随机序列{x1},选取第100至m+99这m个序列值经过公式(3)产生m个r值,表示为r1、r2....rm,即r为一个m维的向量[r1、r2....rm],这个向量中的m个值经过公式(4-3)处理会只取0至(m-1)的整数;把原图像的矩阵的第一行与第r1行互换,然后将新的矩阵的第一行与第r2行互换,以此类推,最后把矩阵的第一行与第rm行互换;图像变换之后可以得到新的r矩阵P,如(4)所示:
定义列变换参数c:
c=mod((abs(x2)-floor(abs(x2)))×1014,n) (5)x2表示超混沌伪随机序列{x2},选取第100至n+99这n个序列值经过公式(5)产生n个c值,表示为c1,c2...cn,即c为一个n维的向量[c1,c2...cn],这个向量中的n个值经过公式(5)处理后,只取0至(n-1)的整数;将公式(4)的矩阵,即行变换后图像的矩阵的第一列与第c1列互换,然后将新的矩阵的第一列与第c2列互换,以此类推,最后是将矩阵的第一列与第cn列互换;将图像再进行列变换之后可以得到新的矩阵Prc,如(6)所示:
3.根据权利要求1所述的超混沌伪随机序列的图像加密方法其特征在于:所述步骤4用超混沌伪随机序列对像素值做动态处理得到新的图像P,所述的动态处理方法是定义:xi=mod((abs(xi)-floor(abs(xi)))×1014,256) (7)xi(i=1,2,3,4)表示四组超混沌伪随机序列{x1}、{x2}、{x3}、{x4}中的第i组,每组序列取m×n个序列值;经过公式(7)处理,可以将序列值只取0到255的整数值;
只能取0到255的整数值,并且在实际处理时 取m×n个序列值。
4.根据权利要求1所述的超混沌伪随机序列的图像加密方法其特征在于:所述步骤5对图像Prc加密,所述的加密方法是对新的图像与 做异或运算,即rc
矩阵P 含有m×n个像素值,并且每个像素值必定为0到255的整数值;含有m×n个序列值,并且每个序列值必定为0到255的整数值;采用MATLAB中的bitxor函数进行m×n次异或,每次异或都为一个像素值和一个序列值进行异或;bitxor函数会自动把十进制转变为二进制,因此十进制的像素值和序列值的异或实际上是各自十进制相应的二进制对应位的异或;最终异或的结果保存在矩阵E中;再通过公式(10)将矩阵E中各像素的取值约束为0到
255的整数:
E=mod(E,256) (10)
这样就完成了图像加密。