1.一种基于比特置乱的量子混沌图像加密方法,包括以下步骤:
(1)输入RGB格式的图像大小为m×n的原始图像p;
(2)利用量子混沌系统生成混沌序列,对所述原始图像p的像素进行比特位置乱操作,得到中间置乱图像I,所述量子混沌系统为Logistic量子混沌系统,其动力学方程为式中,r为可调参数,β是耗散参数,xn、yn、zn是系统的状态值, 分别是xn和zn的复共轭,系统参数取值r∈(3.74,4.00),β≥3.5,状态值xn∈(0,1),yn∈(0,0.2461),zn∈(0,
0.2461)时,系统呈现混沌特性;
所述步骤(2)的具体操作步骤为:
2.1)设定量子混沌系统的初始值x0,y0,z0,r0,β0作为密钥输入,将量子混沌系统迭代K次后的值舍弃,继续将量子混沌系统进行m×n次迭代,取出X、Y、Z的值分别得到长度为m×n的混沌序列X={X1,X2,X3,…,Xm×n}、Y={Y1,Y2,Y3,…,Ym×n}和Z={Z1,Z2,Z3,…,Zm×n};所述K的取值范围为100≤K≤300;X、Y、Z为混沌序列;
2.2)在步骤2.1)的混沌序列中分别取出X、Y、Z中的第i个实数值Xi、Yi、Zi,取Xi数值的前
8位非零数字生成数组序列W={W1,W2,W3,…,W8},取Yi数值的前8位非零数字生成数组序列L={L1,L2,L3,…,L8},取Zi数值的前8位非零数字生成数组序列Q={Q1,Q2,Q3,…,Q8},其中i取值从1开始,下同;
2.3)将步骤2.2)所得的数组序列W、L、Q分别按升序排成由小到大的有序序列W′、L′、Q′,如果数列中有相同的元素,则规定在有序数列中先放下标较小的那个元素,对于W′在W数组中的位置使用一个新数组序列Wt={Wt1,Wt2,Wt3,…,Wt8}来表示,对于L′在L数组中的位置使用一个新数组序列Lt={Lt1,Lt2,Lt3,…,Lt8}来表示,对于Q′在Q数组中的位置使用一个新数组序列Qt={Qt1,Qt2,Qt3,…,Qt8}来表示;
2.4)分离原始图像p中第i个像素点的R、G、B三基色分量,将R、G、B三基色分量像素值从十进制转化为二进制,并用数组Rbit={Rbit1,Rbit2,Rbit3,…,Rbit8}、Gbit={Gbit1,Gbit2,Gbit3,…,Gbit8}和Bbit={Bbit1,Bbit2,Bbit3,…,Bbit8}分别对该像素点的R、G、B像素值比特位进行描述,然后使用步骤2.3)得到的Wt、Lt和Qt序列,分别对数组Rbit、Gbit和Bbit进行置乱,置乱后,得到该像素点的新的R、G、B像素值比特位排列R′bit={R′bit1,R′bit2,R′bit3,…,R′bit3}、G′bit={G′bit1,G′bit2,G′bit3,…,G′bit3}和B′bit={B′bit1,B′bit2,B′bit3,…,B′bit3};
2.5)令i=i+1,对图片进行遍历,依次对原始图像p中的每个像素点进行步骤2.2)到
2.4)的操作,直到i=m×n,完成对图片中所有像素点的RGB像素值比特位的全局置乱;
2.6)将步骤2.5)全局置乱后的R、G、B比特位像素值从二进制转换成十进制,即得到中间置乱图像I,转换后的十进制数值即为中间置乱图像I的单个像素点的值,称为中间密文C′i;
(3)对中间置乱图像I进行加密操作,得到最终加密图像q,该加密操作的具体步骤为:
3.1)对中间置乱图像I中第i个像素点的值即中间密文Ci′进行Di=mod(C′i×248,255)和Ci=mod(Di+C′i,255)的加密运算,求得该像素点的最终密文Ci;
3.2)令i=i+1,对图片进行遍历,依次对中间置乱图像I中的每个像素点进行步骤3.1)的加密运算,直到i=m×n,加密结束,得到最终加密图像q。