1.基于压缩感知和RNA编码的图像加密方法,其特征在于:包括如下步骤:S1:压缩采样,所述的压缩采样的流程为:
S1‑1,对大小为M×N的明文图像进行DWT稀疏变换,得到相应的稀疏系数矩阵P1;
S1‑2,利用4D激光混沌系统生成混沌序列X、混沌序列Y、混沌序列Z和混沌序列W,其中混沌序列Z和混沌序列W生成大小为m×n的测量矩阵Φ,并利用奇异值分解对其进行优化,得到优化后的测量矩阵Φ”;
S1‑3,利用优化后的测量矩阵Φ”对矩阵P1进行压缩采样,得到压缩后的矩阵P2,P2=Φ”×P1;
S1‑4:根据式P3(i)=round[255×(P2(i)‑min)/(max‑min)]将矩阵P2进行量化到[0,
255]之间,得到量化后的矩阵P3,其中max是矩阵P2中的最大值,min为P2中最小值,round(x)表示求离x最近的整数,P3(i)表示矩阵P3的第i个元素,P2(i)表示矩阵P2的第i个元素,i=
1,2,…MN;
S1‑5:根据式:
XS=[255×(P2(i)‑min)/(max‑min)]‑round[255×(P2(i)‑min)/(max‑min)],得出矩阵XS,在重建时利用矩阵XS来提高和优化重建的效果;
S2:对压缩之后的矩阵进行置乱,所述的置乱步骤如下:
S2‑1:将S1中的矩阵P3变换为一个长度为1×mn的序列,记作A1,根据m,n计算k,且k=
1/2
ceil[(m×n) ],其中ceil(x)表示不小于x 的最小整数;
S2‑2:根据k和式aa=k×k‑m×n计算出aa,利用randi(255,aa,1)生成[0,255]之间的aa个随机数,将这aa个随机数作为序列A2的元素;
S2‑3:将A1与A2串联成一个序列记作A3,再将A3转换成k×k大小的矩阵,将该矩阵记作P4;
S2‑4:将混沌序列X按照改进的分形排序矩阵IFSM的生成方法生成初始IFSM,然后迭k‑
2次,得到一个大小为k×k的IFSM,将该矩阵记作F,最后再利用矩阵F对P4中的元素置乱,将置乱后的矩阵记作P5,置乱过程完成;
S3:利用RNA编码对置乱后的矩阵进行扩散,具体的扩散步骤如下:S3‑1:将置乱后的矩阵P5转化为长度为kk×1的序列,再将该序列转化成八位二进制数形式的序列B,序列B中的每个元素均可用Bi=bi8bi7bi6bi5bi4bi3bi2bi1表示,提取序列B中的每个元素的八位二进制数的前两位记作序列H,则有Hi=bi8bi7,其中Bi表示序列B的第i个元素,Hi表示序列H的第i个元素,i=1,2,…kk;
S3‑2:提取混沌序列W的前kk个值作为一个新的序列WW的元素,然后利用式V_W=mod3
(floor(abs(WW×10)),16)将序列WW量化到[0,15]之间,再将序列V_W转化为四位二进制形式,得到序列S,则有Si=si4si3si2si1,其中Si表示二进制序列S的第i个元素,i=1,2,…kk;
3
S3‑3:将混沌序列X和混沌序列Y按照E(i)=mod(floor(abs((X(i)+Y(i))/2×10)),8)+1计算得到序列E,根据序列E中的元素选择编码规则,对序列B进行RNA编码,得到大小为kk×4的RNA矩阵R,其中X(i)、Y(i)、E(i)分别表示序列X、序列Y和序列E的第i个元素,用R(i,j)表示矩阵R的第i行第j列处的元素,i=1,2,…kk,j=1,2,3,4;
S3‑4:将H中的元素作为一个新的二进制形式序列T的后两位,将S中的元素作为序列T的前四位,则有序列T中的第i个元素Ti=si4si3si2si1bi8bi7,其中i=1,2,…kk;
S3‑5:将编码后的RNA矩阵R中的每一行的前三个碱基R(:,1:3)作为一个密码子,根据序列T中的元素值找出其在RNA密码子真值表中对应的密码子,将Ti在真值表中对应的密码子序列记作TRi,其中i=1,2,…kk;
S3‑6:将RNA矩阵中的密码子即R(:,1:3)与密码子序列TRi进行置换,得到一个新的RNA矩阵R1;
S3‑7:提取矩阵R的每一行中的后三位碱基即R(:,2:4)作为序列LR中的元素,通过Ti来选择序列TRi与LRi进行加减异或的操作,其中TRi与LRi分别表示密码子序列TR与LR的第i个密码子,将操作完成后得到的结果记作BR,其中i=1,2,…kk;
S3‑8:将矩阵R1中的每个元素中的第2至第4个碱基即R1(:,2:4)与BR进行替换,将替换后的R1矩阵记作一个新的矩阵R2;
3
S3‑9:将混沌序列Z和混沌序列W按照D(i)=mod(floor(abs(((Z(i)+W(i))/2×10)),
8)+1计算得到序列D,根据序列D中的元素选择解码规则,对R2进行解码,其中Z(i)、W(i)和D(i)分别为序列Z、序列W和序列D的第i个元素,i=1,2,…kk,解码完成后得到二进制形式的序列,再将二进制转换为十进制,最后再将其转换成k×k的矩阵,该矩阵即为密文图像矩阵C,完成加密过程,得到一个大小为k×k的密文图像。
2.根据权利要求1所述的基于压缩感知和RNA编码的图像加密方法,其特征在于:S1中,测量矩阵Φ的生成步骤如下:S1‑2‑a:将初始值x0,y0,z0,w0带入混沌系统中迭代n0+M×N次(n0≥500),得到四个长度均为MN×1的混沌序列X=[x1,x2...,xMN],混沌序列Y=[y1,y2...,yMN],Z=[z1,z2...,zMN],W=[w1,w2...,wMN],其中M,N分别为明文图像的高度和宽度;
S1‑2‑b:将序列Z,W按照YYi=(Zi+Wi)/2得到一个新的序列YY=[yy1,yy2...,yyM×N],其中i=1,2…,M×N,Zi,Wi,YYi分别表示序列Z,W,YY的第i个元素;
S1‑2‑c:令测量矩阵Ф的大小为m×n,其中m=CR×M,n=N,CR为压缩率,选取序列YY的前n个元素作为一个新序列U,令U作为测量矩阵Ф的初始行向量,即Ф(1,:)=U,为减少列相关性,将矩阵的第一列元素设定为λФ(j‑1,n),则有测量矩阵Ф由下式生成:其中2≤j≤m,λ>1。
3.根据权利要求2所述的基于压缩感知和RNA编码的图像加密方法,其特征在于:S1‑2中,利用奇异值分解对测量矩阵Ф进行优化的步骤如下:T
S1‑2‑1:对测量矩阵Φ进行奇异值分解,即Φ=U∑V ,其中对角矩阵 Δ=diag(δ1,δ2…δr),δ1≥δ2≥…≥δr>0;
S1‑2‑2:构造大小为m×n的全一矩阵H0;
S1‑2‑3:用var表示△中元素的均值,在对角矩阵∑中找出大于var的奇异值的个数用f表示;
S1‑2‑4:S1‑2‑2中构造的全一矩阵H0的前f列乘上加权系数t(t>1),得到优化的矩阵H1;
S1‑2‑5:将H1与原始测量矩阵Φ相乘,得到优化的测量矩阵Φ';
S1‑2‑6:在对测量矩阵Φ'进行奇异值分解,即Φ'=U1∑1V1,其中对角矩阵Δ1=diag(δ1',δ2'…δr'),令δ1'=δ2'=…δr'=1,得到新的对角矩阵∑2,最终得到优化后的测量矩阵Φ”=U1∑2V1。
4.根据权利要求1所述的基于压缩感知和RNA编码的图像加密方法,其特征在于:S2‑4中,初始IFSM的生成方法如下:S2‑4‑1:按照A=randperm(numel(X),4)从序列X中随机选择4个值,将这四个数作为序列A的元素,对序列A进行升序排列,得到四个[1,4]之间的数,分别用a1,a2,a3,a4表示,然后将这四个数作为初始改进的分形排序矩阵IFSM的元素,表示为:k
F (k=2,3,4...)表示k阶的改进的分形排序矩阵,randperm(numel(a),q)表示从序列a中随机选择q个不重复的数;
2
S2‑4‑2:将F迭代生成n阶方阵,其中n=3,4,5…。
5.根据权利要求4所述的基于压缩感知和RNA编码的图像加密方法,其特征在于:S2‑4‑2
2中,F迭代生成n阶方阵的步骤如下:
n‑1
S2‑4‑2‑1:提取F 阶矩阵中的第n‑1列即最后一列中的元素作为序列SS1,接着再提取第n‑1行即最后一行中的(1:n‑2)个元素作为序列SS2;
S2‑4‑2‑2:将序列SS1与SS2串联成一个新序列,记作SS3,对SS3进行升序排列得到一个索n‑1引序列I1,接着再对序列I1进行升序排列得到索引序列I2,将I2加上F 阶矩阵中的最大值
2 2
即(n‑1) ,得到序列I3,序列I3表示为:I3=I2+(n‑1) ;
n
S2‑4‑2‑3:将序列I3的(1:n‑2)个值分别作为F 矩阵中的第n行中的(1:n‑2)处的元素,n 2 2将序列I3的(1:n‑1)个值作为F 矩阵中第n列中的(1:n‑1)处的元素,最后再将n‑1,n分别n n作为F矩阵的第(n,n‑1),(n,n)处的元素,最终得到迭代完成的F矩阵。
6.根据权利要求1所述的基于压缩感知和RNA编码的图像加密方法,其特征在于:S3‑7中,对序列TRi与LRi选择的方法如下:S3‑7‑1:将Ti用Ti1Ti2Ti3Ti4Ti5Ti6表示,然后再将Ti分成三部分,分别为T1i=Ti1Ti2,T2i=Ti3Ti4,T3i=Ti5Ti6,其中i=1,2,…kk;
S3‑7‑2:根据T1i,T2i,T3i的值选择TRi与LRi之间的操作,若TRi不是密码子序列中最后一个进行操作的碱基,则对当前碱基进行与下一个碱基相同的操作,若TRi为密码子序列中最后一个进行操作的碱基,则对当前碱基进行与上一个碱基相同的操作,密码子中的其他碱基进行的操作规则与之相同,将操作完成后得到的结果记作BR。