第5章明文关联的数字图像加密算法
典型的基于混沌系统的数字图像密码系统如图51所示,包括加密系统与解密系统。对于加密系统而言,输入为密钥和明文图像,输出为密文图像; 对于解密系统而言,输入为密钥和密文图像,输出为明文图像。
图51典型的基于混沌系统的数字图像密码系统
由图51可知,典型的基于混沌系统的图像密码系统中,加密算法由“置乱—扩散”的循环结构组成。本章将研究基于“扩散—置乱—扩散”结构的新型图像密码算法,其结构如图52所示[121,127,130,134135]。
图52置乱算法与明文关联的图像密码系统
在图52所示的图像密码系统中,加密或解密过程包括混沌密码发生器、两个扩散算法和一个置乱算法,没有循环处理,且只有置乱算法与明文相关联。由于置乱算法与明文相关联,因此,这类系统称为明文关联的图像密码系统,记为PRIC(PlaintextRelated Image Cryptosystem)。
5.1PRIC
如图52所示,PRIC主要包括4部分,即混沌密码发生器、明文无关的扩散算法Ⅰ模块、明文关联的置乱算法模块和明文无关的扩散算法Ⅱ模块。
这里使用了分段线性混沌映射(PWLCM),如式(51)所示。
xi=f(xi-1,p)=xi-1p,0
xi-1-p0.5-p,p≤xi-1<0.5
f(1-xi-1,p),0.5≤xi-1<1(51)
其中,p为PWLCM的参数,0
这里使用了两个PWLCM,其中一个的初始值和参数记为x0和p,另一个的初始值和参数记为y0和q。这里,{x0,p,y0,q}属于密钥的一部分。
设P表示明文图像,大小为M×N。密钥用K表示,K={x0,p,y0,q,r1,r2,r3,r4},其中,x0与p和y0与q分别表示两个PWLCM的初始值与参数,r1、r2、r3和r4为4个8位的随机整数,取值区间为[0,255]。
PRIC的加密过程如下所示。
1. 混沌密码发生器
混沌密码发生器用于产生与明文图像大小相同的4个随机矩阵,记为X、Y、R和W,大小均为M×N。生成这4个随机矩阵的步骤如下所示。
Step 1. 将x0和p分别作为式(51)的初始值和参数,迭代PWLCM r1+r2次跳过过渡态,然后继续迭代MN次,得到长度为MN的状态变量序列,记为{xi},i=1,2,…,MN。
Step 2. 将y0和q分别作为式(51)的初始值和参数,迭代PWLCM r3+r4次跳过过渡态,然后继续迭代MN次,得到长度为MN的状态变量序列,记为{yi},i=1,2,…,MN。
Step 3. 由向量{xi}和{yi},i=1,2,…,MN按式(52)~式(55)得到矩阵X、Y、R和W。
X(u,v)=floorr1+1r1+r3+2x(u-1)×N+v+r3+1r1+r3+2y(u-1)×N+v×1014mod 256(52)
Y(u,v)=floorr2+1r2+r4+2x(u-1)×N+v+r4+1r2+r4+2y(u-1)×N+v×1013mod 256(53)
R(u,v)=floorr1+1r1+r4+2x(u-1)×N+v+r4+1r1+r4+2y(u-1)×N+v×1012mod M(54)
W(u,v)=floorr2+1r2+r3+2x(u-1)×N+v+r3+1r2+r3+2y(u-1)×N+v×1011mod N(55)
其中,floor(t)返回小于或等于数t的□大整数,u=1,2,…,M,v=1,2,…,N。
通过上述步骤计算得到的矩阵X用于前向扩散模块中,Y用于后向扩散模块中,R和W用于置乱模块中。
2. 明文无关的扩散算法Ⅰ模块
通过明文无关的扩散算法Ⅰ(即明文无关的前向扩散算法)模块将明文P转化为矩阵A,其运算步骤如下。
Step 1. 借助式(56)和式(57)将P(1,j)转化为A(1,j),j=1,2,…,N。
A(1,1)=(P(1,1)+X(1,1)+r3+r4)mod 256(56)
A(1,j)=(P(1,j)+X(1,j)+A(1,j-1))mod 256,j=2,3,…,N(57)
Step 2. 借助式(58)将P(i,1)转化为A(i,1),i=2,3,…,M。
A(i,1)=(P(i,1)+X(i,1)+A(i-1,1))mod 256,i=2,3,…,M(58)
Step 3. 借助式(59)将P(i,j)转化为A(i,j),i=2,3,…,M,j=2,3,…,N。
A(i,j)=(P(i,j)+A(i-1,j)+A(i,j-1)+X(i,j))mod 256,
i=2,3,…,M,j=2,3,…,N(59)
经过上述扩散操作后,得到矩阵A。