基于压缩感知和双随机加密机制的彩色图像压缩加密方法转让专利

申请号 : CN201911098613.2

文献号 : CN111050020B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 柴秀丽毕建强付江豫刘先省王娟路杨支相丞

申请人 : 河南大学

摘要 :

本发明提供一种基于压缩感知和双随机加密机制的彩色图像压缩加密方法。该方法首先将明文图像分解成R、G、B三个分量,接着分别对其DWT变换,然后用索引向量D1、D2、D3、D4对稀疏系数矩阵进行双随机位置置乱,之后对置乱后的矩阵进行压缩测量和量化,对量化后的矩阵进行R、G、B分量之间和分量内部同时双随机像素值扩散,最后得到密文图像。利用明文图像信息和外部密钥生成四翼超混沌系统和Logistic‑Tent混沌系统的参数和初始值,接着将参数和初始值带入Logistic‑Tent混沌系统中,生成混沌序列构造测量矩阵;然后把参数和初始值带入四翼超混沌系统中,对生成的四个混沌序列排序,得到四个索引向量,分别用于双随机位置置乱和扩散中。

权利要求 :

1.基于压缩感知和双随机加密机制的彩色图像压缩加密方法,其特征在于,包括:步骤1:将彩色明文图像分解成三个分量R、G和B,并分别对三个分量R、G和B进行离散小波变换,得到三个大小为M×N的稀疏系数矩阵R1、G1和B1,所述彩色明文图像的大小为M×N,M=N;

步骤2:利用彩色明文图像的哈希值K和预设外部密钥,生成初始值u1、u2、x1和x2;

步骤3:根据初始值u1、u2、x1和x2,利用四翼超混沌系统得到混沌序列X、Y、Z和W,并利用Logistic‑Tent混沌系统得到测量矩阵Φ;

步骤4:对混沌序列X、Y、Z和W进行升序排序,得到排序后序列X1、Y1、Z1和W1以及对应的索引向量D1、D2、D3和D4;

步骤5:利用索引向量D1、D2、D3和D4对稀疏系数矩阵R1、G1和B1进行双随机位置置乱,得到置乱后序列R4、G4和B4;

步骤6:利用测量矩阵Φ对置乱后序列R4、G4和B4进行压缩测量,并进行量化处理,得到量化后序列R8、G8和B8;

步骤7:对排序后序列X1、Y1、Z1和W1进行预处理,得到预处理后序列X4、Y4和Z4;

步骤8:利用预处理后序列X4、Y4和Z4对量化后序列R8、G8和B8进行双随机像素值扩散,得到密文序列CR8、CG8和CB8;

步骤9:将密文序列CR8、CG8和CB8分别转换为m×N的矩阵R9、G9和B9,组合R9、G9和B9,得到彩色密文图像C,m=floor(CR×M),CR表示压缩率,floor表示向下取整运算。

2.根据权利要求1所述的方法,其特征在于,步骤2包括:步骤2.1:计算彩色明文图像的SHA‑512哈希函数值,得到一组512位的哈希值K;

步骤2.2:将512位的哈希值K每8位为一组,转换为64个十进制数k1~k64;

步骤2.3:根据64个十进制数k1~k64和预设外部密钥t1、t2、t3和t4,利用公式(1)计算得到四个中间值h1、h2、h3和h4:其中,⊕表示异或运算,sum表示求和运算,max表示取最大值运算;

步骤2.4:将中间值h1、h2、h3和h4带入公式(2)中,得到初始值u1、u2、x1和x2:其中,mod表示取模运算。

3.根据权利要求1所述的方法,其特征在于,步骤3中的利用Logistic‑Tent混沌系统得到测量矩阵Φ,包括:

步骤3.1:以初始值u1为系统参数,以x1为系统初始值,将u1和x1带入Logistic‑Tent混沌系统中,迭代n0+mN次,舍弃前n0个值,得到大小为1×mN的混沌序列XX;以初始值u2为系统参数,以x2为系统初始值,将u2和x2带入Logistic‑Tent混沌系统中,迭代n0+mN次,舍弃前n0个值,得到大小为1×mN的混沌序列YY;

步骤3.2:对混沌序列XX降序排列,对混沌序列YY升序排列,分别得到两个排序后序列XXX和YYY以及对应的索引向量T1和T2;

步骤3.3:随机生成两个大小为m×N的矩阵,并将两个矩阵转换为两个大小为1×mN一维向量η和 利用索引向量T1和T3分别对两个一维向量η和 排序,得到排序后序列P和Q,其中,T3=ceil(0.9×T2),ceil表示向上取整运算;

步骤3.4:根据排序后序列P和Q按照公式(8)和(9)再次计算Logistic‑Tent混沌系统的参数U和初始值z3:

其中,mod表示取模运算, 表示向下取整运算;

步骤3.5:将参数U和初始值z3带入Logistic‑Tent混沌系统中,生成大小为1×mN的混沌序列φ;

步骤3.6:按照从上到下、从左到右的顺序对混沌序列φ中的元素进行排列,构造大小为m×N的测量矩阵Φ:

4.根据权利要求2所述的方法,其特征在于,步骤5具体为:步骤5.1:将索引向量D1、D2、D3和D4两两结合并分成六组新的索引向量,每组新的索引向量中包括三个小组索引向量,每个小组索引向量由索引向量D1、D2、D3和D4中的任意两个组成,且每个小组索引向量中包含的索引向量不完全相同;

步骤5.2:按照公式(12)计算选择参数M2:其中,M2∈[1,6]且为整数;

步骤5.3:根据选择参数M2的取值从六组新的索引向量中选择一组索引向量;

步骤5.4:将稀疏系数矩阵R1、G1和B1分别转化为一维序列R2、G2和B2,利用步骤5.3中选择的索引向量按照预设置乱方式分别对一维序列R2、G2和B2进行双随机位置置乱,得到置乱后序列R4、G4和B4,所述预设置乱方式为:利用第一小组索引向量DS1和DS2对一维序列R2进行置乱,利用第二小组索引向量DS3和DS4对一维序列G2进行置乱,利用第三小组索引向量DS5和DS6对一维序列B2进行置乱,S1,S2,S3,S4,S5,S6∈[1,4]且为整数;

其中,每个小组索引向量对一维序列的置乱操作具体为:利用小组中的其中一个索引向量DS从所述一维序列中选择待置乱像素位置DS(i),将待置乱像素位置DS(i)的像素值映射到一中间序列中的位置i处;

*

再利用小组中的另一个索引向量DS 将中间序列位置i处的像素值映射到置乱后序列中*

的另一个随机位置DS(i)处,得到所述置乱后序列,i∈[1,MN]。

5.根据权利要求2所述的方法,其特征在于,步骤6中的利用测量矩阵Φ对置乱后序列R4、G4和B4进行压缩测量,具体为:将置乱后序列R4、G4和B4转化成大小均为M×N的矩阵R5、G5和B5;

按照公式(14)分别对R5、G5和B5进行压缩测量,得到压缩测量后的矩阵R6、G6和B6:

6.根据权利要求5所述的方法,其特征在于,步骤6中的所述进行量化处理,得到量化后序列R8、G8和B8,具体为:

首先将压缩测量后矩阵R6、G6和B6分别转化为1×mN的序列R7、G7和B7;然后按照公式(15)将序列R7、G7和B7中的元素分别量化到0到255之间,得到量化后序列R8、G8和B8:其中,1≤i≤mN,minr和maxr分别表示序列R7中的最小元素和最大元素,ming和maxg分别表示序列G7中的最小元素和最大元素,minb和maxb分别表示序列B7中的最小元素和最大元素。

7.根据权利要求1所述的方法,其特征在于,步骤7具体为:步骤7.1:按照公式(16)对排序后序列X1、Y1、Z1和W1进行处理,得到序列X2、Y2和Z2:其中,mod表示取模运算,abs表示绝对值运算;

步骤7.2:分别舍弃序列X2、Y2、Z2的前 个元素,对应序列中剩下的元素分别构成序列X3、Y3和Z3,分别从序列X3、Y3和Z3中选取前mN个元素,得到预处理后序列X4、Y4和Z4。

8.根据权利要求1所述的方法,其特征在于,步骤8具体为:步骤8.1:将序列X4和Y4进行升序排序得到排序后序列XX4和YY4以及对应的索引向量v1和v2;

步骤8.2:按照公式(18)得到三个地址向量add1、add2和add3:步骤8.3:根据三个地址向量add1、add2和add3按照公式(19)至(21)对量化后序列R8、G8和B8进行双随机像素值扩散:

其中,表示模加运算,⊕表示异或运算,1≤n≤mN。

说明书 :

基于压缩感知和双随机加密机制的彩色图像压缩加密方法

技术领域

[0001] 本发明涉及图像加密技术领域,尤其涉及一种基于压缩感知和双随机加密机制的彩色图像压缩加密方法。

背景技术

[0002] 随着网络技术和通信技术的快速发展,数字图像在军事、医疗、商业等许多领域广泛应用。图像信息往往含有隐私或机密,一旦泄露将会给国家、社会以及个人带来严重影
响,甚至威胁到国家安全、社会稳定和个人生活,因此,保护图像在传输和存储中的数据安
全显得尤为重要,对数据进行加密是一种有效的技术手段。传统的加密方法,如数据加密标
准(DES)或高级加密标准(AES)主要针对文本信息设计。区别于文本数据,图像具有一些固
有特性,如相邻两个像素之间的强相关性和高冗余度等,这使得采用传统加密方法对图像
信息进行加密时存在加密效率低的问题。作为一种替代方案,基于混沌系统的图像加密是
近年来广泛研究的对象。同时,考虑到逐渐增加的图像数据容量,对图像进行压缩以节约带
宽和存储空间也显得很有必要。压缩感知(compressive sensing,CS)技术近年来逐渐被应
用于图像加密中,在对图像进行压缩的同时,实现数据的加密。
[0003] 在基于CS的图像压缩加密算法中,通常采用DCT或DWT变换对明文图像进行稀疏,得到稀疏系数矩阵,接着采用测量矩阵对该矩阵进行线性测量,从而得到类纹理密文图像,
这种类型图像抗统计攻击能力差,易泄露明文信息。将置乱、扩散操作与CS线性测量相融
合,可以有效提高算法的安全级别。当前的图像置乱方法中,许多算法都利用混沌序列排序
得到一组索引向量,接着利用该向量对明文图像的像素或行或列进行逐一位置置乱,例如,
Wang等人(Wang X Y,Zhang J J,Cao G H.An image encryption algorithm based on 
ZigZag transform and LL compound chaotic system[J].Optics and Laser 
Technology,2019,119:105581.)提出了一种基于ZigZag置乱和复合混沌系统的图像加密
算法,该算法中第一次置乱采用ZigZag技术,对像素按照Z字形一次扫描达到置乱像素的目
的,第二次置乱采用一组索引向量对像素随机置乱;此外,部分加密算法采用Cat,Baker和
标准映射对明文图像进行置乱,也是按照明文图像中的像素位置逐一对像素进行置乱操作
的,还存在(0,0)和(N,N)位置的像素置乱前后位置不变的缺点,导致置乱效果不好,抗统计
攻击能力弱。在图像扩散方法研究中,例如,Sheela等人(Sheela S J,Suresh K V,Tandur 
Deepaknath.Image encryption based on modified Henon map using hybrid chaotic 
shift transform[J].Multimedia Tools and Applications,2018,77:25223–25251.)提
出了一种基于改进的Hénon映射和混合混沌变换的图像加密算法,该算法中利用改进的Hé
non映射生成的混合混沌序列进行扩散,其中第一次扩散先利用混合混沌序列与明文图像
的像素值进行逐行扩散,然后再逐列进行扩散;第二次扩散利用明文图像的当前像素值与
扩散过的前一个像素值进行异或,之后再与混合混沌序列进行异或扩散,这样当前像素的
微小变化都能影响到后面的其它像素。这种扩散方式随机性不高,黑客在已知混沌序列的
情况下很容易破解得到明文图像,降低了算法的安全性。因此,高安全的图像加密方法亟待
被研究。

发明内容

[0004] 为解决现有加密方法中存在的置乱效果不好、扩散方式随机性不高的问题,本发明提供一种基于压缩感知和双随机加密机制的彩色图像压缩加密方法。
[0005] 本发明提供一种基于压缩感知和双随机加密机制的彩色图像压缩加密方法,包括以下步骤:
[0006] 步骤1:将彩色明文图像P(M×N)分解成三个分量R、G和B,并分别对三个分量R、G和B进行离散小波变换,得到三个大小为M×N的稀疏系数矩阵R1、G1和B1,M=N;
[0007] 步骤2:利用彩色明文图像的哈希值K和预设外部密钥,生成初始值u1、u2、x1和x2;
[0008] 步骤3:根据初始值u1、u2、x1和x2,利用四翼超混沌系统得到混沌序列X、Y、Z和W,并利用Logistic‑Tent混沌系统得到测量矩阵Φ;
[0009] 步骤4:对混沌序列X、Y、Z和W进行升序排序,得到排序后序列X1、Y1、Z1和W1以及对应的索引向量D1、D2、D3和D4;
[0010] 步骤5:利用索引向量D1、D2、D3和D4对稀疏系数矩阵R1、G1和B1进行双随机位置置乱,得到置乱后序列R4、G4和B4;
[0011] 步骤6:利用测量矩阵Φ对置乱后序列R4、G4和B4进行压缩测量,并进行量化处理,得到量化后序列R8、G8和B8;
[0012] 步骤7:对排序后序列X1、Y1、Z1和W1进行预处理,得到预处理后序列X4、Y4和Z4;
[0013] 步骤8:利用预处理后序列X4、Y4和Z4对量化后序列R8、G8和B8进行双随机像素值扩散,得到密文序列CR8、CG8和CB8;
[0014] 步骤9:将密文序列CR8、CG8和CB8分别转换为m×N的矩阵R9、G9和B9,组合R9、G9和B9,得到彩色密文图像C,m=floor(CR×M),CR表示压缩率,floor表示向下取整运算。
[0015] 进一步地,步骤2包括:
[0016] 步骤2.1:计算彩色明文图像P(M×N)的SHA‑512哈希函数值,得到一组512位的哈希值K;
[0017] 步骤2.2:将512位的哈希值K每8位为一组,转换为64个十进制数k1~k64;
[0018] 步骤2.3:根据64个十进制数k1~k64和预设外部密钥t1、t2、t3和t4,利用公式(1)计算得到四个中间值h1、h2、h3和h4:
[0019]
[0020] 其中,表示异或运算,sum表示求和运算,max表示取最大值运算;
[0021] 步骤2.4:将中间值h1、h2、h3和h4带入公式(2)中,得到初始值u1、u2、x1和x2:
[0022]
[0023] 其中,mod表示取模运算。
[0024] 进一步地,步骤3中的利用Logistic‑Tent混沌系统得到测量矩阵Φ,包括:
[0025] 步骤3.1:以初始值u1为系统参数,以x1为系统初始值,将u1和x1带入Logistic‑Tent混沌系统中,迭代n0+mN次,舍弃前n0个值,得到大小为1×mN的混沌序列XX;以初始值u2
为系统参数,以x2为系统初始值,将u2和x2带入Logistic‑Tent混沌系统中,迭代n0+mN次,舍
弃前n0个值,得到大小为1×mN的混沌序列YY;
[0026] 步骤3.2:对混沌序列XX降序排列,对混沌序列YY升序排列,分别得到两个排序后序列XXX和YYY以及对应的索引向量T1和T2;
[0027] 步骤3.3:随机生成两个大小为m×N的矩阵,并将两个矩阵转换为两个大小为1×mN一维向量η和 利用索引向量T1和T3分别对两个一维向量η和 排序,得到排序后序列P
和Q,其中,T3=ceil(0.9×T2),ceil表示向上取整运算;
[0028] 步骤3.4:根据排序后序列P和Q按照公式(8)和(9)再次计算Logistic‑Tent混沌系统的参数U和初始值z3:
[0029]
[0030]
[0031] 其中,mod表示取模运算, 表示向下取整运算;
[0032] 步骤3.5:将参数U和初始值z3带入Logistic‑Tent混沌系统中,生成大小为1×mN的混沌序列φ;
[0033] 步骤3.6:按照从上到下、从左到右的顺序对混沌序列φ中的元素进行排列,构造大小为m×N的测量矩阵Φ:
[0034]
[0035] 进一步地,步骤5具体为:
[0036] 步骤5.1:将索引向量D1、D2、D3和D4两两结合并分成六组新的索引向量,每组新的索引向量中包括三个小组索引向量,每个小组索引向量由索引向量D1、D2、D3和D4中的任意
两个组成,且每个小组索引向量中包含的索引向量不完全相同;
[0037] 步骤5.2:按照公式(12)计算选择参数M2:
[0038]
[0039] 其中,M2∈[1,6]且为整数;
[0040] 步骤5.3:根据选择参数M2的取值从六组新的索引向量中选择一组索引向量;
[0041] 步骤5.4:将稀疏系数矩阵R1、G1和B1分别转化为一维序列R2、G2和B2,利用步骤5.3中选择的索引向量按照预设置乱方式分别对一维序列R2、G2和B2进行双随机位置置乱,得到
置乱后序列R4、G4和B4,所述预设置乱方式为:
[0042] 利用第一小组索引向量DS1和DS2对一维序列R2进行置乱,利用第二小组索引向量DS3和DS4对一维序列G2进行置乱,利用第三小组索引向量DS5和DS6对一维序列B2进行置乱,
S1,S2,S3,S4,S5,S6∈[1,4]且为整数;
[0043] 其中,每个小组索引向量对一维序列的置乱操作具体为:
[0044] 利用小组中的其中一个索引向量DS从所述一维序列中选择待置乱像素位置DS(i),将待置乱像素位置DS(i)的像素值映射到一中间序列中的位置i处;
[0045] 再利用小组中的另一个索引向量DS*将中间序列位置i处的像素值映射到置乱后序*
列中的另一个随机位置DS(i)处,得到所述置乱后序列,i∈[1,MN]。
[0046] 进一步地,步骤6中的利用测量矩阵Φ对置乱后序列R4、G4和B4进行压缩测量,具体为:
[0047] 将置乱后序列R4、G4和B4转化成大小均为M×N的矩阵R5、G5和B5;
[0048] 按照公式(14)分别对R5、G5和B5进行压缩测量,得到压缩测量后的矩阵R6、G6和B6:
[0049]
[0050] 进一步地,步骤6中的所述进行量化处理,得到量化后序列R8、G8和B8,具体为:
[0051] 首先将压缩测量后矩阵R6、G6和B6分别转化为1×mN的序列R7、G7和B7;然后按照公式(15)将序列R7、G7和B7中的元素分别量化到0到255之间,得到量化后序列R8、G8和B8:
[0052]
[0053] 其中,1≤i≤mN,minr和maxr分别表示序列R7中的最小元素和最大元素,ming和maxg分别表示序列G7中的最小元素和最大元素,minb和maxb分别表示序列B7中的最小元素
和最大元素。
[0054] 进一步地,步骤7具体为:
[0055] 步骤7.1:按照公式(16)对排序后序列X1、Y1、Z1和W1进行处理,得到序列X2、Y2和Z2:
[0056]
[0057] 其中,mod表示取模运算,abs表示绝对值运算;
[0058] 步骤7.2:分别舍弃序列X2、Y2、Z2的前 个元素,对应序列中剩下的元素分别构成序列X3、Y3和Z3,分别从序列X3、Y3和Z3中选取前mN个元素,得到预处理后序
列X4、Y4和Z4。
[0059] 进一步地,步骤8具体为:
[0060] 步骤8.1:将序列X4和Y4进行升序排序得到排序后序列XX4和YY4以及对应的索引向量v1和v2;
[0061] 步骤8.2:按照公式(18)得到三个地址向量add1、add2和add3:
[0062]
[0063] 其中,m=floor(CR×M),CR表示压缩率;
[0064] 步骤8.3:根据三个地址向量add1、add2和add3按照公式(19)至(21)对量化后序列R8、G8和B8进行双随机像素值扩散:
[0065]
[0066]
[0067]
[0068] 其中,表示模加运算,表示异或运算,1≤n≤mN。
[0069] 本发明的有益效果:
[0070] (1)首先从彩色明文图像中提取R、G、B三个分量,接着分别对其DWT,得到三个稀疏系数矩阵,然后分别对三个稀疏系数矩阵按照本发明设计的双随机位置置乱方式进行置
乱,之后利用本发明设计的混沌测量矩阵对置乱后的矩阵分别进行压缩测量和量化,接着
对R、G、B分量之间和分量内部同时进行双随机像素值扩散,最终得到彩色密文图像;利用明
文图像的哈希值和外部密钥控制四翼超混沌系统和Logistic‑Tent混沌系统的参数生成,
接着将参数和初始值带入Logistic‑Tent混沌系统中,生成混沌序列构造测量矩阵;然后把
参数和初始值带入四翼超混沌系统中,对生成的四个混沌序列排序,得到四个索引向量,分
别用于双随机位置置乱和双随机像素值扩散中,这样算法不仅与明文密切相关,提高了算
法抵抗已知明文和选择明文攻击的能力,而且通过压缩感知和置乱‑扩散结合,在对图像进
行压缩的同时,也对图像进行加密,有效减少数据量的传输,节约传输带宽和时间,并防止
图像信息泄露。
[0071] (2)传统的顺序置乱方式从明文图像的第一行到最后一行或者第一列到最后一列依次进行,利用一组索引向量对明文像素一一置乱,这种顺序一对一映射为黑客分析密文
与明文之间的联系提供了很大的便利,并且一组索引向量的安全性不是很高,在索引向量
泄漏的情况下很容易得到明文信息。相比于传统的顺序置乱方式,本发明设计的双随机位
置置乱方式,首先把初始值带入四翼超混沌系统中,生成四个混沌序列,然后对四个混沌序
列升序排列,得到四个索引向量,之后四个索引向量两两组合分组,从中随机选择一组,得
到两个索引向量,接着利用其中一个索引向量从明文图像中选择待置乱的像素位置,然后
再利用另一个索引向量将其映射到另一个随机位置,从而得到置乱后的密文图像。利用不
同的混沌序列排序得到的两个索引向量建立图像待置乱像素位置和置乱后位置的一对一
的映射关系,本发明设计的双随机位置置乱增强了置乱结果的随机性和不易破解性,不仅
提高了密文图像的安全性,而且不容易泄露索引向量。
[0072] (3)本发明基于混沌系统和明文图像提出了一种混沌测量矩阵的生成方法,首先利用明文图像和外部密钥控制Logistic‑Tent混沌系统的参数生成,接着通过该系统生成
两个混沌序列,一个升序排列,一个降序排列,得到对应的索引向量,对其中一个索引向量
做修正,之后随机生成两个矩阵并转化成两个一维序列,利用前面得到的索引向量对两个
一维序列重新排序得到两个新序列,然后利用这两个新序列再计算Logistic‑Tent混沌系
统的参数序列和初始值,并带入Logistic‑Tent混沌系统中迭代求解,最后利用生成的混沌
序列构造测量矩阵。结合明文图像和外部密钥控制Logistic‑Tent混沌系统的参数生成,这
样增强了算法与明文图像的相关性,提高了算法的安全级别,而且Logistic‑Tent混沌系统
的参数不再是一个具体的数值,而是一个序列,从而生成随机性更强的混沌序列和得到较
优的测量矩阵。
[0073] (4)不同于当前图像加密算法按照元素顺序进行逐一扩散的顺序扩散方式,本发明设计的双随机像素值扩散方法,首先从图像中选择待扩散的像素值进行扩散,并且与之
进行异或扩散的当前分量中已经扩散过的像素,以及其他分量的像素都通过索引向量来确
定,扩散后的元素的位置也由索引向量确定,扩散和置乱同时进行。明文图像R、G、B分量内
部和分量之间同时进行双随机像素值扩散,得到的密文图像灰度值分布更加均匀,使攻击
者很难对密文图像进行统计攻击分析得到明文信息,增强了本发明算法的安全级别。

附图说明

[0074] 图1为本发明实施例提供的基于压缩感知和双随机加密机制的彩色图像压缩加密方法的流程示意图之一;
[0075] 图2为本发明实施例提供的基于压缩感知和双随机加密机制的彩色图像压缩加密方法的流程示意图之二;
[0076] 图3为本发明实施例提供的生成混沌测量矩阵的流程示意图;
[0077] 图4为传统的顺序置乱方式的示意图;
[0078] 图5为本发明实施例提供的双随机位置置乱方式的示意图;
[0079] 图6为本发明实施例提供的明文图像、利用基于压缩感知和双随机加密机制的彩色图像压缩加密方法得到的密文图像和解密图像的示意图;
[0080] 图7为本发明实施例提供的基于压缩感知和双随机加密机制的彩色图像压缩加密方法的密钥敏感性的测试结果示意图;
[0081] 图8为本发明实施例提供的明文图像和利用基于压缩感知和双随机加密机制的彩色图像压缩加密方法得到的密文图像的RGB分量的直方图;
[0082] 图9为本发明实施例提供的基于压缩感知和双随机加密机制的彩色图像压缩加密方法的抗噪声攻击的测试结果示意图。

具体实施方式

[0083] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分
实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创
造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0084] 如图1和图2所示,本发明提供一种基于压缩感知和双随机加密机制的彩色图像压缩加密方法,包括以下步骤:
[0085] S101:将彩色明文图像P(M×N)分解成三个分量R、G和B,并分别对三个分量R、G和B进行离散小波变换,得到三个大小为M×N的稀疏系数矩阵R1、G1和B1,M=N;
[0086] S102:利用彩色明文图像的哈希值K和预设外部密钥,生成初始值u1、u2、x1和x2;具体地,包括以下子步骤:
[0087] S1021:计算彩色明文图像P(M×N)的SHA‑512哈希函数值,得到一组512位的哈希值K;
[0088] S1022:将512位的哈希值K每8位为一组,转换为64个十进制数k1~k64;
[0089] S1023:根据64个十进制数k1~k64和预设外部密钥t1、t2、t3和t4,利用公式(1)计算得到四个中间值h1、h2、h3和h4:
[0090]
[0091] 其中,表示异或运算,sum表示求和运算,max表示取最大值运算;t1,t2,t3,t4∈(0,+∞);
[0092] S1024:将中间值h1、h2、h3和h4带入公式(2)中,得到初始值u1、u2、x1和x2:
[0093]
[0094] 其中,mod表示取模运算,floor表示向下取整运算。例如,mod(a,b)表示a对b的取模运算,floor(x)表示取比x小的最大整数。
[0095] S103:根据初始值u1、u2、x1和x2,利用四翼超混沌系统得到混沌序列X、Y、Z和W,并利用Logistic‑Tent混沌系统得到测量矩阵Φ;
[0096] 具体地,四翼超混沌系统可用公式(3)表示:
[0097]
[0098] 式(3)中,x、y、z、w代表四翼超混沌系统的状态变量,a、b、c、d、e代表控制参数。当a=1、b=28、c=8/3、d=1、e=16时,该系统处于超混沌状态。
[0099] Logistic‑Tent混沌系统是两个经典的一维混沌映射Logistic和Skew‑Tent映射的组合。一维混沌映射Logistic和Skew‑Tent映射可分别用公式(4)和(5)表示:
[0100] tn+1=μtn(1‑tn)   (4)
[0101]
[0102] 其中,两个映射的初始值t0∈(0,1),参数μ∈[3.57,4]和r∈(0,1)。
[0103] Logistic‑Tent混沌系统可用公式(6)所示:
[0104]
[0105] 其中,该混沌系统的初始值z0∈(0,1)和参数u∈(0,4]。该系统生成的混沌序列性能优于Logistic映射和Skew‑Tent映射。
[0106] 根据初始值u1、u2、x1和x2,利用四翼超混沌系统得到混沌序列X、Y、Z和W,具体为:令u1=x0、u2=y0、x1=z0、x2=w0,x0、y0、z0、w0是四翼超混沌系统的初始值;将初始值x0、y0、
z0、w0带入四翼超混沌系统,迭代t0+MN次(其中t0≥1000),为了避免有害影响,舍弃前t0个
值,得到四个大小为1×MN的序列X、Y、Z、W。
[0107] 用于压缩感知的测量矩阵包括随机测量矩阵和确定性测量矩阵,随机测量矩阵的计算复杂度高,所需存储空间大,而确定性测量矩阵计算复杂度低,克服了随机测量矩阵的
不足。混沌测量矩阵作为一种确定性测量矩阵,具备伪随机性,计算过程简单,硬件上容易
实现,在某些要求安全性和保密性的应用上具有优势。
[0108] 本步骤基于混沌系统和明文图像设计了一种混沌测量矩阵,使混沌系统的参数具有更好的随机性,从而生成随机性更强的混沌序列,得到较优的测量矩阵。
[0109] 如图3所示,利用Logistic‑Tent混沌系统得到测量矩阵Φ,包括以下子步骤:
[0110] S1031:以初始值u1为系统参数,以x1为系统初始值,将u1和x1带入Logistic‑Tent混沌系统中,迭代n0+mN次,为了避免有害影响,舍弃前n0个值,得到大小为1×mN的混沌序列
XX={x1,x2,…,xmN};以初始值u2为系统参数,以x2为系统初始值,将u2和x2带入Logistic‑
Tent混沌系统中,迭代n0+mN次,舍弃前n0个值,得到大小为1×mN的混沌序列YY={y1,
y2,…,ymN},m=floor(CR×M),CR表示压缩率,floor表示向下取整运算,n0≥1000;
[0111] S1032:对混沌序列XX降序排列,对混沌序列YY升序排列,分别得到两个排序后序列XXX和YYY以及对应的索引向量T1和T2;即如公式(7)所示:
[0112]
[0113] 其中,sort表示排序运算;
[0114] S1033:随机生成两个大小为m×N的矩阵,并将两个矩阵转换为两个大小为1×mN一维向量η={η1,η2,…,ηmN}和 利用索引向量T1和T3分别对两个一
维向量η和 排序,得到排序后序列P和Q,即:P=η(T1)和 其中,T3=ceil(0.9×
T2),ceil表示向上取整运算;
[0115] S1034:根据排序后序列P和Q按照公式(8)和(9)再次计算Logistic‑Tent混沌系统的参数U和初始值z3:
[0116]
[0117]
[0118] 其中,mod表示取模运算, 表示向下取整运算;
[0119] S1035:将参数U和初始值z3带入Logistic‑Tent混沌系统中,生成大小为1×mN的混沌序列φ={φ1,φ2,…,φmN};
[0120] S1036:按照从上到下、从左到右的顺序对混沌序列φ={φ1,φ2,…,φmN}中的元素进行排列,构造大小为m×N的测量矩阵Φ:
[0121]
[0122] S104:对混沌序列X、Y、Z和W进行升序排序,得到排序后序列X1、Y1、Z1和W1以及对应的索引向量D1、D2、D3和D4,即如公式(11)所示:
[0123]
[0124] S105:利用索引向量D1、D2、D3和D4对稀疏系数矩阵R1、G1和B1进行双随机位置置乱,得到置乱后序列R4、G4和B4;
[0125] 以图4中所示的明文图像置乱为例,从明文图像的第一个(左上)像素到最后一个(右下)像素依次扫描,利用索引向量D(i)对像素一一置乱,这种顺序一对一映射为密文分
析提供了极大的便利,每个像素的特殊性也将存在于密文中,并且这种映射关系容易泄漏
索引向量D(i),因此如图4所示的传统的顺序置乱方法会降低图像加密的安全性。
[0126] 针对传统的顺序置乱方法存在的上述问题,本步骤设计一种双随机位置置乱方式,将明文图像的像素位置以随机的方式置乱。如图5所示,在双随机位置置乱过程中,有两
个索引向量参与。首先,利用索引向量D1(i)从明文图像当中选择待置乱的像素位置,然后
再利用索引向量D2(i)将其映射到另一个随机位置,最终得到置乱后的密文图像。由于两个
索引向量之间具有很强的伪随机性,这样通过双随机位置置乱,不仅降低了像素之间的相
关性,而且得到的密文图像的安全性有了极大的提高。具体的置乱方案如下所示:
[0127] S1051:将索引向量D1、D2、D3和D4两两结合并分成六组新的索引向量,每组新的索引向量中包括三个小组索引向量,每个小组索引向量由索引向量D1、D2、D3和D4中的任意两
个组成,且每个小组索引向量中包含的索引向量不完全相同;例如,六组新的索引向量如
下:
[0128]
[0129]
[0130] S1052:按照公式(12)计算选择参数M2:
[0131]
[0132] 其中,M2∈[1,6]且为整数,mod表示取模运算,floor表示向下取整运算;
[0133] S1053:根据选择参数M2的取值从六组新的索引向量中选择一组索引向量;例如,当M2=1时,选取第一组索引向量;当M2=2时,选取第二组索引向量;当M2=3时,选取第三组
索引向量;当M2=4时,选取第四组索引向量;当M2=5时,选取第五组索引向量;当M2=6时,
选取第六组索引向量;
[0134] S1054:将稀疏系数矩阵R1、G1和B1分别转化为一维序列R2、G2和B2,利用步骤S1053中选择的索引向量按照预设置乱方式分别对一维序列R2、G2和B2进行双随机位置置乱,得到
置乱后序列R4、G4和B4;
[0135] 所述预设置乱方式为:利用第一小组索引向量DS1和DS2对一维序列R2进行置乱,利用第二小组索引向量DS3和DS4对一维序列G2进行置乱,利用第三小组索引向量DS5和DS6对一
维序列B2进行置乱,S1,S2,S3,S4,S5,S6∈[1,4]且为整数;其中,每个小组索引向量对一维
序列的置乱操作具体为:利用小组中的其中一个索引向量DS从所述一维序列中选择待置乱
像素位置DS(i),将待置乱像素位置DS(i)的像素值映射到一中间序列中的位置i处;再利用
*
小组中的另一个索引向量DS将中间序列位置i处的像素值映射到置乱后序列中的另一个随
*
机位置DS(i)处,得到所述置乱后序列,i∈[1,MN]。
[0136] 例如,选择第一组索引向量对一维序列R2、G2和B2进行双随机位置置乱为例,具体操作如下:
[0137] 首先,利用索引向量D1(i)从R2(i)中选择待置乱的像素位置,将其映射到R3(i)中;然后,再利用索引向量D2(i)将R3(i)映射到R4(i)中的另一个随机位置,最终得到置乱后的
密文图像R4(i)。同理,利用索引向量D2(i)和D3(i)对G2(i)进行处理得到G4(i);利用索引向
量D3(i)和D4(i)对B2(i)进行处理得到B4(i);即如公式(13)所示:
[0138]
[0139] S106:利用测量矩阵Φ对置乱后序列R4、G4和B4进行压缩测量,并进行量化处理,得到量化后序列R8、G8和B8;具体地,包括以下子步骤:
[0140] S1061:首先将置乱后的序列R4、G4和B4转化成大小均为M×N的矩阵R5、G5和B5,然后按照公式(14)分别对R5、G5和B5进行压缩测量,最后得到压缩测量后的矩阵R6、G6和B6:
[0141]
[0142] S1062:将压缩测量后矩阵R6、G6和B6分别转化为1×mN的序列R7、G7和B7;
[0143] S1063:按照公式(15)将序列R7、G7和B7中的元素分别量化到0到255之间,得到量化后序列R8、G8和B8:
[0144]
[0145] 其中,1≤i≤mN,minr和maxr分别表示序列R7中的最小元素和最大元素,ming和maxg分别表示序列G7中的最小元素和最大元素,minb和maxb分别表示序列B7中的最小元素
和最大元素。
[0146] S107:对排序后序列X1、Y1、Z1和W1进行预处理,得到预处理后序列X4、Y4和Z4;具体地,包括以下子步骤:
[0147] S1071:按照公式(16)对排序后序列X1、Y1、Z1和W1进行处理,得到序列X2、Y2和Z2:
[0148]
[0149] 其中,mod表示取模运算,floor表示向下取整运算,abs表示绝对值运算。
[0150] S1072:分别舍弃序列X2、Y2、Z2的前 个元素,对应序列中剩下的元素分别构成序列X3、Y3和Z3,分别从序列X3、Y3和Z3中选取前mN个元素,得到预处理后序列
X4、Y4和Z4,CR表示压缩率。
[0151] S108:利用预处理后序列X4、Y4和Z4对量化后序列R8、G8和B8进行双随机像素值扩散,得到密文序列CR8、CG8和CB8;具体地,包括以下子步骤:
[0152] S1081:将序列X4和Y4进行升序排序得到排序后序列XX4和YY4以及对应的索引向量v1和v2,即如公式(17)所示:
[0153]
[0154] S1082:按照公式(18)得到三个地址向量add1、add2和add3:
[0155]
[0156] S1083:根据三个地址向量add1、add2和add3按照公式(19)至(21)对量化后序列R8、G8和B8进行双随机像素值扩散:
[0157]
[0158]
[0159]
[0160] 其中,表示模加运算,表示异或运算,1≤n≤mN。
[0161] S109:将密文序列CR8、CG8和CB8分别转换为m×N的矩阵R9、G9和B9,组合R9、G9和B9,得到彩色密文图像C。
[0162] 本发明提供的基于压缩感知和双随机加密机制的彩色图像压缩加密方法,具有如下有益效果:
[0163] (1)首先从彩色明文图像中提取R、G、B三个分量,接着分别对其DWT,得到三个稀疏系数矩阵,然后分别对三个稀疏系数矩阵按照本发明设计的双随机位置置乱方式进行置
乱,之后利用本发明设计的混沌测量矩阵对置乱后的矩阵分别进行压缩测量和量化,接着
对R、G、B分量之间和分量内部同时进行双随机像素值扩散,最终得到彩色密文图像;利用明
文图像的哈希值和外部密钥控制四翼超混沌系统和Logistic‑Tent混沌系统的参数生成,
接着将参数和初始值带入Logistic‑Tent混沌系统中,生成混沌序列构造测量矩阵;然后把
参数和初始值带入四翼超混沌系统中,对生成的四个混沌序列排序,得到四个索引向量,分
别用于双随机位置置乱和双随机像素值扩散中,这样算法不仅与明文密切相关,提高了算
法抵抗已知明文和选择明文攻击的能力,而且通过压缩感知和置乱‑扩散结合,在对图像进
行压缩的同时,也对图像进行加密,有效减少数据量的传输,节约传输带宽和时间,并防止
图像信息泄露。
[0164] (2)传统的顺序置乱方式从明文图像的第一行到最后一行或者第一列到最后一列依次进行,利用一组索引向量对明文像素一一置乱,这种顺序一对一映射为黑客分析密文
与明文之间的联系提供了很大的便利,并且一组索引向量的安全性不是很高,在索引向量
泄漏的情况下很容易得到明文信息。相比于传统的顺序置乱方式,本发明设计的双随机位
置置乱方式,首先把初始值带入四翼超混沌系统中,生成四个混沌序列,然后对四个混沌序
列升序排列,得到四个索引向量,之后四个索引向量两两组合分组,从中随机选择一组,得
到两个索引向量,接着利用其中一个索引向量从明文图像中选择待置乱的像素位置,然后
再利用另一个索引向量将其映射到另一个随机位置,从而得到置乱后的密文图像。利用不
同的混沌序列排序得到的两个索引向量建立图像待置乱像素位置和置乱后位置的一对一
的映射关系,本发明设计的双随机位置置乱增强了置乱结果的随机性和不易破解性,不仅
提高了密文图像的安全性,而且不容易泄露索引向量。
[0165] (3)本发明基于混沌系统和明文图像提出了一种混沌测量矩阵的生成方法,首先利用明文图像和外部密钥控制Logistic‑Tent混沌系统的参数生成,接着通过该系统生成
两个混沌序列,一个升序排列,一个降序排列,得到对应的索引向量,对其中一个索引向量
做修正,之后随机生成两个矩阵并转化成两个一维序列,利用前面得到的索引向量对两个
一维序列重新排序得到两个新序列,然后利用这两个新序列再计算Logistic‑Tent混沌系
统的参数序列和初始值,并带入Logistic‑Tent混沌系统中迭代求解,最后利用生成的混沌
序列构造测量矩阵。结合明文图像和外部密钥控制Logistic‑Tent混沌系统的参数生成,这
样增强了算法与明文图像的相关性,提高了算法的安全级别,而且Logistic‑Tent混沌系统
的参数不再是一个具体的数值,而是一个序列,从而生成随机性更强的混沌序列和得到较
优的测量矩阵。
[0166] (4)不同于当前图像加密算法按照元素顺序进行逐一扩散的顺序扩散方式,本发明设计的双随机像素值扩散方法,首先从图像中选择待扩散的像素值进行扩散,并且与之
进行异或扩散的当前分量中已经扩散过的像素,以及其他分量的像素都通过索引向量来确
定,扩散后的元素的位置也由索引向量确定,扩散和置乱同时进行。明文图像R、G、B分量内
部和分量之间同时进行双随机像素值扩散,得到的密文图像灰度值分布更加均匀,使攻击
者很难对密文图像进行统计攻击分析得到明文信息,增强了本发明算法的安全级别。
[0167] 为验证本发明提供的加密方法的安全有效性,提供以下仿真实验。
[0168] 实验仿真平台如下:CPU:Intel(R)Core(TM)i5‑4590,3.30GHz;Memory:4.00GB;Operating system:Windows7;Coding tool:Matlab2016a。本发明使用的参数如下:512位
哈希值K,外部密钥t1=22.3000、t2=33.2124、t3=15.9608、t4=32.2400。压缩率CR=0.5,
采用ONSL0重建方法。本实验选取512×512的彩色图像Lena作为明文图像,利用本发明所提
加密算法和相应的解密算法对图像进行操作,得到的加密和解密效果如图6所示。图6中:
(a)为Lena明文图像;(b)为密文图像;(c)为相应的解密图像。
[0169] 由图6可知,在CR=0.5时,得到尺寸缩小一半的杂乱无章的密文图像,从中无法得到有用信息,明文图像信息得以保护,经过解密得到的图像与原始图像几乎一样,具有较好
的图像视觉质量。由于密文图像是原始图像的50%,那么在传输密文图像时,节约了传输带
宽、时间、存储空间,更加方便在网络中传输。
[0170] 1密钥空间分析
[0171] 本发明所提出加密算法的密钥主要包括:(1)明文图像的SHA‑512哈希函数获得的512位哈希值K;(2)给定的外部密钥:t1、t2、t3、t4;(3)中间参数:maxr、minr、maxg、ming、
‑14 14 4 56
maxb、minb。假设计算机的计算精度为10 ,则本发明算法的密钥空间约为(10 ) =10 >
168 100
2 。如果加上512位的哈希值和中间参数,整体密钥空间远远超过了2 。所以该算法的密
钥空间足够大,可以抵抗暴力攻击。
[0172] 2密钥敏感性分析
[0173] 利用本发明的解密方法,对密钥t1和t2分别做一个数值相差Δ=10‑14的修改,得到新的密钥T1(t1``=t1+Δ),T2(t2``=t2+Δ)。用修改过后的密钥对图6(b)的密文图像进行
解密,测试结果如图7所示:图7中:(a)是修改后的密钥T1(t1``=t1+Δ)的解密图像;(b)是
修改后的密钥T2(t2``=t2+Δ)的解密图像。由图7可知,对密钥进行轻微的修改后,无法通
过解密操作得到明文图像信息,因此本发明提出的加密算法具有良好的密钥敏感性。
[0174] 3直方图分析
[0175] 图8给出彩色图像Lena的明文图像和相应的密文图像(CR=0.5)的直方图,图8中:(a)‑(c)和(d)‑(f)分别是彩色图像Lena的明文图像和密文图像的RGB分量的直方图。图8
中,可以清楚的看到密文图像的直方图非常均匀且与明文图像的直方图显著不同,这使得
攻击者通过统计攻击分析密文图像变得十分困难。
[0176] 4信息熵分析
[0177] 信息熵反应了测试信息的随机性和不可预测性。信息源m的信息熵H(m)可以定义为:
[0178]
[0179] 式中,p(mi)表示mi的概率。对于具有256个灰度级的密文图像,通过公式(22)得到信息熵的理论值为H(m)=8。因此,密文信息熵越接近8,密文的表现越随机,表明密码系统
泄漏信息的概率越小。在CR=0.5时,对512×512的彩色图像Lena进行信息熵测试,结果见
下表1。从表1可知,密文图像的信息熵值均达到7.998以上,这表明密文信息随机性高和提
出的加密算法的有效性。
[0180] 表1明文图像和密文图像信息熵测试
[0181]
[0182] 5抗噪声攻击分析
[0183] 在网络传输过程中,图像可能被不同类型的噪声污染。椒盐噪声(SPN)、高斯噪声(GN)和斑点噪声(SN)是传输中三种典型的噪声。将噪声添加到密文图像中,然后对含噪声
图像进行解密,根据恢复的图像质量评估本发明提出的算法的抗噪声能力。在仿真中,选择
大小为512×512的彩色Lena作为明文图像,在CR=0.5时,噪声强度为0.00003的解密图像
如图9所示。
[0184] 由图9可知,在噪声污染下,解密后的图像仍然可以识别。在三种噪声中,斑点噪声和高斯噪声对解密图像的质量影响最大,相应的解密图像和明文图像的PSNR值为
17.2882dB和13.1115dB,椒盐噪声影响下的PNSR值为31.8791dB,这表明本发明算法具有较
强的抗椒盐噪声的能力。
[0185] 仿真结果和安全性分析表明,本发明所提出的加密方法具有较大的密钥空间、高的密钥敏感性,具有一定的抵抗各种攻击的能力,可以应用于图像保密通信领域中。
[0186] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。