[0010] 步骤四、采用三元分数阶离散混沌神经网络系统生成混沌序列,迭代三元分数阶离散神经网络混沌系统T次,T>M×N,获得三组长度为T的混沌序列,分别记为X、Y、Z;
[0011] 步骤五、分别从步骤四生成的X、Y、Z混沌序列的第p个元素之后开始,截取长度为M×N的混沌序列,记为混沌序列X1、Y1、Z1;
[0012] 步骤六、将步骤二所述红色分量R、绿色分量G、蓝色分量B分别转换成一维图像红色序列RS,一维图像绿色序列GS,一维图像蓝色序列BS;
[0013] 步骤七、对步骤五所述混沌序列X1、Y1、Z1按升序排列,获得三个位置索引矩阵positionMatrix1、positionMatrix2、positionMatrix3;
[0014] 步骤八、采用步骤七所述的位置索引矩阵positionMatrix1对步骤六所述的一维图像红色序列RS中每个像素值进行置乱,采用位置索引矩阵positionMatrix2对一维图像绿色序列GS中每个像素值进行置乱,采用位置索引矩阵positionMatrix3对一维图像蓝色序列BS中每个像素值进行置乱,获得置乱后的三个色彩分量RS1、GS1、BS1;
[0015] 步骤九、将步骤五中生成的三个混沌序列X1、Y1、Z1分别映射为三个布尔矩阵X_exchange、Y_exchange、Z_exchange,映射后的三个矩阵中只包含0、1元素;
[0016] 步骤十、采用步骤九生成的三个布尔矩阵X_exchange、Y_exchange、Z_exchange对步骤八获得置乱后的三个色彩分量RS1、GS1、BS1进行像素的交叉混淆;
[0017] 当矩阵X_exchange中第一个元素的值为0时,置乱后的色彩分量RS1与GS1中第一个元素的位置不变,当矩阵X_exchange中第一个元素的值为1时,交换RS1与GS1中第一个元素的位置,以此类推,直到最后一个元素为止;根据矩阵Y_exchange、Z_exchange中元素的值分别对彩色分量GS1、BS1和RS1、BS1进行相同的操作,获得置乱后的三个混淆色彩序列RS2、GS2、BS2;
[0018] 步骤十一、将步骤十获得的三个混淆色彩序列RS2,GS2,BS2转换为大小均为M×N的三个混淆色彩矩阵RF,GF,BF;
[0019] 步骤十二、将步骤四中生成的混沌序列X、Y、Z进行归一化处理,再将归一化处理后的序列分别截取 的长度,生成两组序列,将所述两组序列XX1、YY1、ZZ1和XX2、YY2、ZZ2变形生成两组扩散矩阵F1、F2、F3和FF1、FF2、FF3;
[0020] 步骤十三、采用步骤十二生成的大小为 的扩散矩阵F1、F2、F3与步骤十一所述的大小为M×N的混淆色彩矩阵RF、GF、BF进行矩阵半张量积运算,即第一轮的扩散操作,得到矩阵RF1、GF1、BF1;
[0021] 步骤十四、采用步骤十二生成的大小为 的扩散矩阵FF1、FF2、FF3与步骤十三生成的大小为M×N矩阵RF1、GF1、BF1再进行一次矩阵半张量积运算,获得三个矩阵RF2、GF2、BF2;
[0022] 步骤十五、执行下式计算,将像素值映射在[0,255]的范围内,获得两轮扩散后的三个彩色分量矩阵RF3、GF3、BF3;
[0023]
[0024] 并分别由下述公式获得矩阵QXR,QYR,QXG,QYG,QXB,QYB;
[0025]
[0026]
[0027]
[0028] 步骤十六、将步骤十五得到的三个彩色分量矩阵合并,获得最终的加密图像CImage。
[0029] 本发明的有益效果:本发明提出的基于混沌选择置乱和半张量积扩散的彩色图像加密方法,由三元分数阶离散混沌神经网络系统,生成明文相关的混沌序列,先对彩色图像的各个分量独立地执行第一次置乱,然后将三个彩色分量进行交叉混淆置乱,最后将半张量积运算应用于扩散操作,改变像素值的大小。常规的彩色图像加密算法对三个彩色通道使用相同的方法进行处理,当攻击者破解一条彩色通道时,整幅图像将被破解,本算法将三个彩色分量进行交叉混淆,可以达到更好的置乱效果,也避免了上述情况的发生。将半张量积应用于扩散过程中,大大提高了算法的密钥空间,增强了算法的抗攻击能力。
附图说明
[0030] 图1本发明所述的卷基于混沌选择置乱和半张量积扩散的彩色图像加密方法中加密过程流程图;
[0031] 图2本发明所述的基于混沌选择置乱和半张量积扩散的彩色图像加密方法中解密过程流程图;
[0032] 图3为采用本发明所述的基于混沌选择置乱和半张量积扩散的彩色图像加密方法进行加密解密的效果图:其中图3(a)为“玫瑰”的原始图像,图3(b)为“玫瑰”的加密图像,图3(c)为“玫瑰”的解密图像;
[0033] 图4为采用本发明所述的基于混沌选择置乱和半张量积扩散的彩色图像加密方法直方图分析:其中图4(a)为图3(b)红色分量的直方图,图4(b)为图3(b)绿色分量的直方图,图4(c)为图3(b)蓝色分量的直方图。
具体实施方式
[0034] 具体实施方式一、结合图1至图4说明本实施方式,基于混沌选择置乱和半张量积扩散的彩色图像加密方法,该方法由以下步骤实现:
[0035] 步骤一、选择大小为256×256×3的彩色图像“玫瑰”作为原始图像Image,如附图3(a)所示;
[0036] 步骤二、将步骤一所述的原始图像Image由式(1)所示方法分成三个色彩分量,分别是图像红色分量R、图像绿色分量G、图像蓝色分量B:
[0037]
[0038] 步骤三、计算明文相关混沌密钥指针p,计算方法如公式(2)所示:
[0039]
[0040] 其中,floor()为向下取整函数,mod()为求余函数,sum()为求和函数,K,L为用户设定参数,本实施方式中取K=200,L=20。
[0041] 步骤四、使用三元分数阶离散混沌神经网络系统生成混沌序列,三元分数阶离散混沌神经网络系统如式(3)所描述:
[0042]
[0043] 其中,x,y,z为三元分数阶离散神经网络混沌系统的状态变量;h表示离散步长,v+表示分数阶数,h∈R ,v∈(0,1), 代表伽马函数,本实施方式中设
置混沌系统的初值为x=0.08,y=0.8,z=‑6.2,h=0.05,v=0.6。迭代三元分数阶离散神经网络混沌系统T次,T=100000,得到三组长度为T的混沌序列,分别记为X、Y、Z。
[0044] 步骤五、分别从步骤四生成的X、Y、Z序列的第p个元素之后开始,p为步骤三所述明文相关混沌密钥指针,截取长度为M×N的序列,截取方法如公式(4)所示,记为混沌序列X1、Y1、Z1:
[0045]
[0046] 步骤六、将步骤二所述图像红色分量R、图像绿色分量G、图像蓝色分量B分别转换成一维图像红色序列RS,图像绿色序列GS,图像蓝色序列BS,如式(5)所示:
[0047]
[0048] 式中,reshape()为矩阵变换函数,reshape(A,m,n)则表示返回一个m*n的矩阵,矩阵中的元素是按列从A中得到的。
[0049] 步骤七、对步骤五所述混沌序列X1、Y1、Z1按升序排列,得到三个位置索引矩阵positionMatrix1、positionMatrix2、positionMatrix3,如式(6)所示;
[0050]
[0051] 其中,sort()是求矩阵索引序列的函数,"~"表示升序排列后的矩阵。
[0052] 步骤八、用步骤七所述的位置索引矩阵positionMatrix1、positionMatrix2、positionMatrix3对步骤六所述一维图像红色序列RS,图像绿色序列GS,图像蓝色序列BS中每个像素值进行置乱,置乱方法如公式(7)所示,得到混沌置乱后的矩阵RS1、GS1、BS1;
[0053]
[0054] 其中,j=1,2,…,M×N。
[0055] 步骤九、将步骤五中生成的三个混沌序列X1、Y1、Z1映射为布尔矩阵X_exchange、Y_exchange、Z_exchange,如公式(8)所示,变形后的三个矩阵中只包含0、1元素;
[0056]
[0057] 步骤十、用步骤九生成的矩阵X_exchange、Y_exchange、Z_exchange对置乱后的三个色彩分量RS1、GS1、BS1进行像素的交叉混淆,交叉混淆的方法如公式(9)(10)(11)所示:
[0058] 当X_exchange(i)=1时:
[0059]
[0060] 当Y_exchange(i)=1时:
[0061]
[0062] 当Z_exchange(i)=1时:
[0063]
[0064] 其中,i=1,2,……,256×256,当矩阵X_exchange中第一个元素的值为0时,彩色分量RS1与GS1中第一个元素的位置不变,当矩阵X_exchange中第一个元素的值为1时,交换RS1与GS1中第一个元素的位置,以此类推,直到最后一个元素为止;同理,根据矩阵Y_exchange、Z_exchange中元素的值分别对彩色分量GS1、BS1和RS1、BS1进行相同的操作,得到置乱后的三个混淆色彩序列RS2、GS2、BS2。
[0065] 步骤十一、将步骤十得到的三个混淆色彩序列RS2,GS2,BS2转换为256×256大小的三个混淆色彩矩阵RF,GF,BF,如公式(12)所示;
[0066]
[0067] 步骤十二、将步骤五中生成的混沌序列X、Y、Z进行归一化处理,如公式(13)所示,再分别截取32×32、64×64长度,生成如公式(14)、公式(15)所示的两组序列,变形生成两组扩散矩阵F1、F2、F3和FF1、FF2、FF3,如公式(16)、公式(17)所示;
[0068]
[0069]
[0070]
[0071]
[0072]
[0073] 步骤十三、用步骤十二生成的大小为32×32的扩散矩阵F1、F2、F3与步骤十所述的大小为M×N的像素矩阵RF、GF、BF进行矩阵半张量积运算,即第一轮的扩散操作,得到矩阵RF1、GF1、BF1,具体方法如公式(18)所示;
[0074]
[0075] 其中,I8表示维度为8的单位矩阵, 表示矩阵半张量积运算,运算描述如下:
[0076] 对于两个矩阵A(m×n)、B(p×q),运算需满足:n%p=0或p%n=0,其中,“%”表示取余运算,n代表矩阵A的列数,p代表矩阵B的行数,
[0077] (1)如果
[0078] (2)如果
[0079] 其中 表示克罗内克积,Ii表示维度为i的单位矩阵。
[0080] 步骤十四、用步骤十二生成的大小为64×64的扩散矩阵FF1、FF2、FF3,与步骤十三所述的第一轮扩散后的矩阵RF1、GF1、BF1再进行一次矩阵半张量积运算,即第二轮的扩散操作,得到矩阵RF2、GF2、BF2,如公式(19)所示;
[0081]
[0082] 步骤十五、执行公式(20)的计算,将像素值映射在[0,255]的范围内,并由公式(21)(22)(23)得到矩阵QXR,QYR,QXG,QYG,QXB,QYB;
[0083]
[0084]
[0085]
[0086]
[0087] 步骤十六、将步骤十五得到的三个彩色分量矩阵合并,由公式(24)得到最终的加密图像CImage,如附图3(b)所示;
[0088] CImage=cat(3,RF3,GF3,BF3) (24)。
[0089] 本实施方式中,还包括解密步骤,具体为:
[0090] 步骤十七、将加密后的图CImage按照步骤二的方法分成三个密文色彩分量RF3′,GF3′,BF3′,由公式(25)得到逆扩散后的逆扩散矩阵RF2′,GF2′,BF2′;
[0091]
[0092] 步骤十八、进行两次矩阵半张量积的逆运算,得到三个解密混淆色彩序列RF′,GF′,BF′,方法如公式(26)、公式(27)所示;
[0093]
[0094]
[0095] 步骤十九、利用与步骤三相同操作得到的解密指针p’,进行如步骤五和步骤九所示的相同操作,得到解密密钥序列X1’、Y1’、Z1’和解密密钥矩阵X_exchange’、Y_exchange’、Z_exchange’;
[0096] 步骤二十、先将矩阵RF′,GF′,BF′转换为一维序列,即1×(256×256)的矩阵RS2′,GS2′,BS2′,结合步骤十九得到的密钥矩阵X_exchange’、Y_exchange’、Z_exchange’,再按照步骤十所示方法的逆过程,得到混沌置乱后的三个解密矩阵RS1′,GS1′,BS1′,具体方式如公式(28)(29)(30)所示;
[0097] 当Z_exchange(j)′=1时:
[0098]
[0099] 当Y_exchange(j)′=1时:
[0100]
[0101] 当X_exchange(j)′=1时:
[0102]
[0103] 其中j=1,2,……,256×256。
[0104] 步骤二十一、对步骤十九得到的密钥序列X1’、Y1’、Z1’按照步骤七所示的方法得到位置解密索引矩阵positionMatrix1’、positionMatrix2’、positionMatrix3’,用三个位置索引矩阵对步骤二十得到的矩阵RS1’、GS1’、BS1’进行逆排序,得到解密像素矩阵RS′,GS′,BS′,具体操作由式(31)给出;
[0105]
[0106] 其中,k=1,2,……,256×256。
[0107] 步骤二十二、将步骤二十一得到的矩阵RS′,GS′,BS′转换为256×256的矩阵R′,G′,B′,如式(32)所示,最后由式(33)得到解密后的图像Image′,如附图3(c)所示;
[0108]
[0109] Image′=cat(3,R′,G′B′) (33)
[0110] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0111] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。