一种加密图像可逆信息隐藏方法

文档序号:28501481发布日期:2022-01-15 04:57阅读:148来源:国知局
一种加密图像可逆信息隐藏方法

1.本发明涉及图像处理领域,具体涉及一种加密图像可逆信息隐藏方法。


背景技术:

2.随着时代的进步,图像作为信息传递与存储的主要载体被广泛使用,伴随而来的图像内容安全与管理问题逐渐受到关注。结合现有图像加密技术和可逆信息隐藏技术,研究者提出了加密图像可逆信息隐藏(reversible data hiding in encrypted image,rdhei)以实现图像的隐私保护与安全管理,在军事,医学,云存储等方面都具有较为广泛的应用价值。
3.经过十多年的发展,rdhei在隐藏容量、可逆性等方面取得了一系列研究成果。同时,rdhei生成的加密图像的安全性、文件大小等也引起了研究者的关注。2020年,chen等人(f.chen,y.yuan,h.he,et al.“multi-msb compression based reversible data hiding scheme in encrypted images,”ieee transactions on circuits and systems for video technology,2021,31(3):905-916.)提出了一种基于多msb压缩的加密图像可逆数据隐藏算法,该算法根据图像内容和所需隐藏容量自适应减少加密图像的像素数,既满足了所需附加信息的嵌入,又尽可能降低了加密图像的文件大小,有效提高了加密图像的存储和传输效率。不过,多位平面预测,位平面分块压缩和置乱异或加密的时间复杂度较高。另一方面,研究者利用霍夫曼编码的特性,提出了多种高容量rdhei算法。fu等人(y.fu,p.kong,h.yao,et al.“effective reversible data hiding in encrypted image with adaptive encoding strategy,”information sciences,2019,494:21-36.)利用霍夫曼编码对图像块分类标记,yin等人(z.yin,y.xiang,x.zhang.“reversible data hiding in encrypted images based on multi-msb prediction and huffman coding,”ieee transactions on multimedia,2020,22(4):874-884.)使用霍夫曼编码标记原始与预测像素值相同的msbs位数。由于霍夫曼编码良好的压缩编码特性,基于霍夫曼编码的rdhei算法在提高隐藏容量的同时,还降低了时间复杂度。不过,现有基于霍夫曼编码rdhei算法的压缩编码性能是否达到最佳,是一个值得研究的问题。
4.此外,rdhei的安全性是影响rdhei技术推广应用的关键因素。从图像所有者的角度,托管于云的由rdhei算法生成的加密图像(或载密图像),在各种恶意攻击(如唯密文、已知明文、选择明文等)条件下,都不应该导致原始图像内容信息泄露。现有rdhei算法生成的加密图像在唯密文(f.khelifi.“on the security of a stream cipher in reversible data hiding schemes operating in the encrypted domain,”signal processing,2018,143:336-345.)、已知明文(陈帆,屈凌峰,原长琦,和红杰.“基于有序等价划分的冗余空间转移图像加密安全性分析,”电子学报,2021,49(4):665-671.)等攻击条件下,存在泄露原始图像信息的可能。如何提高rdhei算法生成加密图像的安全性事关rdhei技术的实际应用,是rdhei技术必须解决的关键难题。


技术实现要素:

5.针对现有技术中的上述不足,本发明提供的一种加密图像可逆信息隐藏方法解决了现有技术压缩编码性能低、抵抗加密攻击的能力弱和计算时间复杂度高的问题。
6.为了达到上述发明目的,本发明采用的技术方案为:
7.提供一种加密图像可逆信息隐藏方法,其包括以下步骤:
8.s1、获取原始图像,选取参考像素并通过原始图像生成对应的预测误差图;
9.s2、根据预测误差图生成霍夫曼编码表;
10.s3、获取并基于加密密钥,通过预测误差图中的预测误差值和霍夫曼编码表进行类内偏移编码,生成压缩编码流;
11.s4、组成辅助数据,并通过des加密生成加密辅助数据;
12.s5、将压缩编码流和加密辅助数据结合为原始流,并获取原始流长度,由原始流长度与加密密钥生成特征密钥后,对原始流加密构成加密图像;
13.s6、获取隐藏密钥和与加密图像相关的秘密数据,通过隐藏密钥对加密图像相关的秘密数据进行加密,通过加密的秘密数据和位替换的数据嵌入方式将加密图像处理成载密图像。
14.进一步地,步骤s1的具体方法为:
15.s1-1、获取原始图像,选取一个像素作为参考像素并将其预测误差值设置为0;
16.s1-2、采用预测方法对其余像素求取预测误差值,得到与原始图像对应的预测误差图。
17.进一步地,步骤s2的具体方法为:
18.s2-1、统计预测误差图中各个预测误差值出现的概率,并按照霍夫曼编码表构造规则对其进行处理,生成初始霍夫曼编码表;
19.s2-2、获取初始霍夫曼编码表中各编码的长度,并按照编码长度对初始霍夫曼编码表进行排序,得到有序霍夫曼编码表;
20.s2-3、根据有序霍夫曼编码表中的编码长度对编码进行分类;
21.s2-4、获取安全强度因子,计算临界编码长度;
22.s2-5、提取分类中编码长度小于临界编码长度的编码,并统计编码长度小于临界编码长度的各类编码个数;
23.s2-6、获取时间戳,生成时间密钥,选取提取后的编码中最短编码长度为初始编码长度;
24.s2-7、将时间密钥与初始编码长度相加作为种子,通过置乱序列生成函数randperm(len1,seed1)生成与类别中编码个数相等长度的类内置乱序列后,对类别中的编码进行置乱,从初始编码长度开始直到所有小于临界编码长度的编码完成置乱,即完成类内置乱;其中len1为置乱序列长度,seed1为种子;
25.s2-8、统计分类中编码长度大于等于临界编码长度的编码个数,并将时间密钥与临界编码长度之和作为种子,分类中大于等于临界编码长度的编码个数作为置乱序列长度输入置乱序列生成函数,得到类间待置乱序列;
26.s2-9、在有序霍夫曼编码表中提取编码长度大于等于临界编码长度的编码,并将类间待置乱序列中相邻的两个编码分为一组;
27.s2-10、按照类间待置乱序列从前到后的顺序,通过相邻的两个编码对应预测误差值出现的次数计算相邻的两个编码产生的模拟增长量l
inc

28.其中l
inc
=l1n1+l2n
1-(l1n1+l2n2),l1和l2分别为相邻的两个编码的长度,n1和n2分别为相邻的两个编码对应预测误差值在预测误差图出现的次数;
29.s2-11、判断当前模拟增长量是否小于等于由时间密钥生成的阈值,若是则将相邻的两个编码进行置乱,且用阈值减去模拟增长量;否则相邻的两个编码和阈值均保持不变;直到完成类间置乱;
30.s2-12、将进行类内置乱后的编码和类间置乱后的编码进行结合,得到霍夫曼编码表。
31.进一步地,步骤s2-4中计算临界编码长度的具体方法为:
32.根据公式:
[0033][0034]
得到临界编码长度l
lim
,其中为向下取整操作,log2为以2为底的对数,α为安全强度因子,w为原始图像的行数,h为原始图像的列数。
[0035]
进一步地,步骤s3的具体方法为:
[0036]
s3-1、获取加密密钥,以加密密钥作为种子,根据随机偏移序列生成函数rand(len2,seed2,advance)生成长度为原始图像行数乘以原始图像列数的十进制随机偏移序列,并根据霍夫曼编码表中的编码长度对编码表进行分类;其中len2为偏移序列长度,seed2为加密密钥种子,advance为进制数;
[0037]
s3-2、在分类后的霍夫曼编码表中寻找误差值与预测误差图中的预测误差值相同时对应编码的编码长度;
[0038]
s3-3、确定寻找得到的编码长度的类别中包含的误差值和编码个数,并通过tm=mod(rm,nk)公式,将十进制随机偏移序列中的随机数rm计算为实际偏移值tm;其中mod(
·
)为取余操作,nk为寻找得到的编码长度的类别中的编码个数,1≤m≤w
×
h,w为原始图像的行数,h为原始图像的列数;
[0039]
s3-4、在寻找得到的编码长度的类别中寻找误差值与预测误差图中的预测误差值相同时的序号,结合实际偏移值确定预测误差图中的预测误差值对应的编码;
[0040]
s3-5、将预测误差图中的预测误差值对应的编码依次连接生成压缩编码流。
[0041]
进一步地,步骤s5的具体方法为:
[0042]
s5-1、将加密辅助数据的长度除以64并处理成二进制数据,将二进制数据、加密辅助数据和压缩编码流组合成原始流;
[0043]
s5-2、根据原始流的长度和预留空间长度计算加密图像的行数和实际预留空间的长度;
[0044]
s5-3、将原始流、实际预留空间和实际预留空间长度的二进制形式组合构成总比特流;
[0045]
s5-4、获取特征密钥,并以特征密钥作为种子,通过随机值生成函数rand(len3,seed3,10)生成长度为1的十进制随机值,且随机值大小在实际预留空间长度范围内;其中
len3=1,seed3为特征密钥种子;
[0046]
s5-5、并根据随机序列生成函数rand(len4,seed3,2)生成长度为原始流长度加上十进制随机值的二进制随机序列,即随机比特流,并对总比特流进行加密;其中特征密钥key=hash(ke,ls),hash(
·
)为哈希函数,ke为加密密钥值,ls为原始流的长度;其中len4为原始流长度与十进制随机值之和;
[0047]
s5-6、将加密后的总比特流构造为8个大小为加密图像的行数乘以原始图像的列数的位平面,并组合生成加密图像。
[0048]
进一步地,步骤s5-2的具体方法为:
[0049]
s5-2-1、根据公式:
[0050][0051]
得到加密图像的行数w

;ls为原始流的长度,l
τ
为预留空间的长度,log2为以2为底的对数,w为原始图像的行数,h为原始图像的列数;
[0052]
s5-2-2、根据公式:
[0053]
l

=w
′×h×
8-(ls+log2(w
′×h×
8))
[0054]
得到实际预留空间的长度l


[0055]
进一步地,步骤s6的具体方法为:
[0056]
s6-1、通过加密图像最后log2(w
′×h×
8)位存储的实际预留空间长度确定加密图像中实际预留空间的大小和位置;log2为以2为底的对数,w

为加密图像的行数,h为原始图像的列数;
[0057]
s6-2、获取隐藏密钥与秘密数据,通过隐藏密钥对秘密数据进行加密,通过位替换在实际预留空间中嵌入加密的秘密数据生成载密图像。
[0058]
进一步地,步骤s6之后还包括步骤:
[0059]
s7、通过载密图像提取秘密数据以及恢复原始图像。
[0060]
进一步地,步骤s7的具体方法为:
[0061]
s7-1、将载密图像展开为比特流,并根据展开得到的比特流中最后log2(w
′×h×
8)位存储的实际预留空间长度,从实际预留空间中提取加密的秘密数据;其中log2为以2为底的对数,w

为加密图像的行数,h为原始图像的列数;
[0062]
s7-2、根据数据嵌入时的隐藏密钥解密加密的秘密数据,恢复出原始的秘密数据;
[0063]
s7-3、对展开得到的比特流进行解密,恢复原始流;
[0064]
s7-4、通过原始流中加密辅助数据进行des解密,得到原始图像的参考像素、原始图像的行数、霍夫曼编码表和压缩编码流长度;
[0065]
s7-5、通过压缩编码流长度提取原始流中的压缩编码流;
[0066]
s7-6、通过类内偏移编码的逆操作对霍夫曼编码表和压缩编码流进行解码处理,恢复预测误差图;
[0067]
s7-7、结合预测误差图、原始图像的参考像素和原始图像的行数,通过预测算法恢复原始图像。
[0068]
本发明的有益效果为:
[0069]
1、本发明提出了可变霍夫曼编码策略;该策略具有三个特点:1)编码表自适应生成。在生成霍夫曼编码过程中,是根据图像生成的预测误差分布自适应生成,能够使霍夫曼编码性能达到最佳,从而实现更高的嵌入容量。2)密钥参与编码过程。类内偏移霍夫曼编码中,偏移序列根据加密密钥产生,因此对同一副图像,当加密密钥不同时,生成的偏移序列不同,从而霍夫曼编码也互不相同。3)编码流长度扩展。安全强度因子约束的霍夫曼编码表生成中,根据安全强度因子限制压缩编码流长度扩展的最大值,当扩展值越大,编码表置乱的密钥空间越大。通过设定合适的安全强度因子值,在满足较高嵌入容量的同时提高安全性。
[0070]
2、本发明提出了时间戳控制的霍夫曼编码表生成。在霍夫曼编码表生成中,由时间戳确定扩展长度与调整霍夫曼编码表。在相同图像相同密钥的情况下,由于每次执行程序的时间戳不同,生成的加密图像也互不相同,从而有效地抵抗现有的唯密文攻击、已知明文攻击和选择明文攻击等。
[0071]
3、本发明降低了算法的时间复杂度。加密阶段仅用异或加密,简化了加密算法,且编码算法采用效率较高的霍夫曼编码,使算法具有较低的时间复杂度。
[0072]
综上所述,本发明在提高嵌入容量的同时,能有效地抵抗现有的攻击算法来保证加密图像的安全性,并且算法具有较低的时间复杂度,更好地满足实际需求,使得在应用过程中更加安全高效。
附图说明
[0073]
图1为本发明的流程图;
[0074]
图2为lena测试图像;
[0075]
图3为jetplane测试图像;
[0076]
图4为barbara测试图像;
[0077]
图5为boat测试图像;
[0078]
图6为peppers测试图像;
[0079]
图7为lake测试图像;
[0080]
图8为crowd测试图像;
[0081]
图9为baboon测试图像;
[0082]
图10为本发明与参考文献算法嵌入容量比较图;
[0083]
图11为lena测试图像在相同密钥下第一次生成的加密图像;
[0084]
图12为lena测试图像在相同密钥下第二次生成的加密图像;
[0085]
图13为lena测试图像两次生成加密图像的差值图;
[0086]
图14为lena测试图像后199次生成加密图像与第一次生成加密图像的psnr;
[0087]
图15为本发明与参考文献算法的运行时间对比。
具体实施方式
[0088]
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易
见的,一切利用本发明构思的发明创造均在保护之列。
[0089]
如图1所示,该加密图像可逆信息隐藏方法包括以下步骤:
[0090]
s1、获取原始图像,选取参考像素并通过原始图像生成对应的预测误差图;
[0091]
s2、在安全强度因子与时间戳约束下,根据预测误差图生成霍夫曼编码表;
[0092]
s3、获取并基于加密密钥,通过预测误差图中的预测误差值和霍夫曼编码表进行类内偏移编码,生成压缩编码流;
[0093]
s4、将原始图像的参考像素、原始图像的行数、霍夫曼编码表和压缩编码流的长度组成辅助数据,并通过des加密生成加密辅助数据;
[0094]
s5、将压缩编码流和加密辅助数据结合为原始流,并获取原始流长度,由原始流长度与加密密钥生成特征密钥后,对原始流加密构成加密图像;
[0095]
s6、获取隐藏密钥和与加密图像相关的秘密数据,通过隐藏密钥对加密图像相关的秘密数据进行加密,通过加密的秘密数据和位替换的数据嵌入方式将加密图像处理成载密图像。
[0096]
步骤s1的具体方法为:
[0097]
s1-1、获取原始图像,选取一个像素作为参考像素并将其预测误差值设置为0;
[0098]
s1-2、采用预测方法对其余像素求取预测误差值,得到与原始图像对应的预测误差图。
[0099]
步骤s2的具体方法为:
[0100]
s2-1、统计预测误差图中各个预测误差值出现的概率,并按照霍夫曼编码表构造规则对其进行处理,生成初始霍夫曼编码表;
[0101]
s2-2、获取初始霍夫曼编码表中各编码的长度,并按照编码长度对初始霍夫曼编码表进行排序,得到有序霍夫曼编码表;
[0102]
s2-3、根据有序霍夫曼编码表中的编码长度对编码进行分类;
[0103]
s2-4、获取安全强度因子,计算临界编码长度;
[0104]
s2-5、提取分类中编码长度小于临界编码长度的编码,并统计编码长度小于临界编码长度的各类编码个数;
[0105]
s2-6、获取时间戳,生成时间密钥,选取提取后的编码中最短编码长度为初始编码长度;
[0106]
s2-7、将时间密钥与初始编码长度相加作为种子,通过置乱序列生成函数randperm(len1,seed1)生成与类别中编码个数相等长度的类内置乱序列后,对类别中的编码进行置乱,从初始编码长度开始直到所有小于临界编码长度的编码完成置乱,即完成类内置乱;其中len1为置乱序列长度,seed1为种子;
[0107]
置乱序列中的各个元素互不相同且在1到len1范围内,当seed1和len1均相同时,生成的置乱序列相同;
[0108]
s2-8、统计分类中编码长度大于等于临界编码长度的编码个数,并将时间密钥与临界编码长度之和作为种子,分类中大于等于临界编码长度的编码个数作为置乱序列长度输入置乱序列生成函数,得到类间待置乱序列;
[0109]
s2-9、在有序霍夫曼编码表中提取编码长度大于等于临界编码长度的编码,并将类间待置乱序列中相邻的两个编码分为一组;
[0110]
s2-10、按照类间待置乱序列从前到后的顺序,通过相邻的两个编码对应预测误差值出现的次数计算相邻的两个编码产生的模拟增长量l
inc

[0111]
其中l
inc
=l1n1+l2n
1-(l1n1+l2n2),l1和l2分别为相邻的两个编码的长度,n1和n2分别为相邻的两个编码对应预测误差值在预测误差图出现的次数;
[0112]
s2-11、判断当前模拟增长量是否小于等于由时间密钥生成的阈值,若是则将相邻的两个编码进行置乱,且用阈值减去模拟增长量;否则相邻的两个编码和阈值均保持不变;直到完成类间置乱;
[0113]
s2-12、将进行类内置乱后的编码和类间置乱后的编码进行结合,得到霍夫曼编码表。
[0114]
步骤s2-4中计算临界编码长度的具体方法为:
[0115]
根据公式:
[0116][0117]
得到临界编码长度l
lim
,其中为,log2为以2为底的对数,α为安全强度因子,w为原始图像的行数,h为原始图像的列数。
[0118]
步骤s3的具体方法为:
[0119]
s3-1、获取加密密钥,以加密密钥作为种子,根据随机偏移序列生成函数rand(len2,seed2,advance)生成长度为原始图像行数乘以原始图像列数的十进制随机偏移序列,并根据霍夫曼编码表中的编码长度对编码表进行分类;其中len2为偏移序列长度,seed2为加密密钥种子,advance为进制数;
[0120]
随机偏移序列为长度为len1的均匀分布随机序列,当advance为2时序列中只包括0和1,当advance为10时序列中各元素为十进制数;
[0121]
s3-2、在分类后的霍夫曼编码表中寻找误差值与预测误差图中的预测误差值相同时对应编码的编码长度;
[0122]
s3-3、确定寻找得到的编码长度的类别中包含的误差值和编码个数,并通过tm=mod(rm,nk)公式,将十进制随机偏移序列中的随机数rm计算为实际偏移值tm;其中mod(
·
)为取余操作,nk为寻找得到的编码长度的类别中的编码个数,1≤m≤w
×
h,w为原始图像的行数,h为原始图像的列数;
[0123]
s3-4、在寻找得到的编码长度的类别中寻找误差值与预测误差图中的预测误差值相同时的序号,结合实际偏移值确定预测误差图中的预测误差值对应的编码;
[0124]
s3-5、将预测误差图中的预测误差值对应的编码依次连接生成压缩编码流。
[0125]
步骤s5的具体方法为:
[0126]
s5-1、将加密辅助数据的长度除以64并处理成二进制数据,将二进制数据、加密辅助数据和压缩编码流组合成原始流;
[0127]
s5-2、根据原始流的长度和预留空间长度计算加密图像的行数和实际预留空间的长度;
[0128]
s5-3、将原始流、实际预留空间和实际预留空间长度的二进制形式组合构成总比特流;
[0129]
s5-4、获取特征密钥,并以特征密钥作为种子,通过随机值生成函数rand(len3,seed3,10)生成长度为1的十进制随机值,且随机值大小在实际预留空间长度范围内;其中len3=1,seed3为特征密钥种子;
[0130]
s5-5、并根据随机序列生成函数rand(len4,seed3,2)生成长度为原始流长度加上十进制随机值的二进制随机序列,即随机比特流,并对总比特流进行加密;其中特征密钥key=hash(ke,ls),hash(
·
)为ke与ls执行一个sha256函数后选取的哈希函数,ke为加密密钥值,ls为原始流的长度;其中len4为原始流长度与十进制随机值之和;
[0131]
s5-6、将加密后的总比特流构造为8个大小为加密图像的行数乘以原始图像的列数的位平面,并组合生成加密图像。
[0132]
步骤s5-2的具体方法为:
[0133]
s5-2-1、根据公式:
[0134][0135]
得到加密图像的行数w

;ls为原始流的长度,l
τ
为预留空间的长度,log2为以2为底的对数,w为原始图像的行数,h为原始图像的列数;
[0136]
s5-2-2、根据公式:
[0137]
l

=w
′×h×
8-(ls+log2(w
′×h×
8))
[0138]
得到实际预留空间的长度l


[0139]
步骤s6的具体方法为:
[0140]
s6-1、通过加密图像最后log2(w
′×h×
8)位存储的实际预留空间长度确定加密图像中实际预留空间的大小和位置;log2为以2为底的对数,w

为加密图像的行数,h为原始图像的列数;
[0141]
s6-2、获取隐藏密钥与秘密数据,通过隐藏密钥对秘密数据进行加密,通过位替换在实际预留空间中嵌入加密的秘密数据生成载密图像。
[0142]
其中秘密数据为加密图像的外围数据,不包含加密图像的主要特征信息,所以后续可以直接利用载密图像恢复原始图像,且恢复的秘密数据可以用于判断恢复的图像是否被篡改,外围数据例如加密时间。
[0143]
步骤s6之后还包括步骤:
[0144]
s7、通过载密图像提取秘密数据以及恢复原始图像。
[0145]
步骤s7的具体方法为:
[0146]
s7-1、将载密图像展开为比特流,并根据展开得到的比特流中最后log2(w
′×h×
8)位存储的实际预留空间长度,从实际预留空间中提取加密的秘密数据;其中log2为以2为底的对数,w

为加密图像的行数,h为原始图像的列数;
[0147]
s7-2、根据数据嵌入时的隐藏密钥解密加密的秘密数据,恢复出原始的秘密数据;
[0148]
s7-3、根据展开得到的比特流确定原始流的实际预留空间长度,并计算出原始流长度;
[0149]
s7-4、获取并结合加密密钥,原始流长度和哈希函数恢复特征密钥,根据特征密钥对比特流进行解密,得到原始流;
[0150]
s7-5、从原始流中恢复加密辅助数据;
[0151]
s7-6、通过原始流中加密辅助数据进行des解密,得到原始图像的参考像素、原始图像的行数、霍夫曼编码表和压缩编码流长度;
[0152]
s7-7、通过压缩编码流长度提取原始流中的压缩编码流;
[0153]
s7-8、通过类内偏移编码的逆操作对霍夫曼编码表和压缩编码流进行解码处理,恢复预测误差图;
[0154]
s7-9、结合预测误差图、原始图像的参考像素和原始图像的行数,通过预测算法恢复原始图像。
[0155]
为验证本发明的性能,进行以下实验:
[0156]
实验平台为amd ryzen 7 4800u 1.80ghz cpu,16gb(15.4gb)ram,64位操作系统的matlab r2018b;如图2到图9所示,选取不同测试图像,且测试图像均为512
×
512的灰度图像。
[0157]
嵌入容量对比:
[0158]
为评估本文编码的性能,将本发明与chen等人(chen et al.)和yin等人(yin et al.)的嵌入容量进行实验对比。如图10所示,本发明选取最大嵌入容量作为实验结果,为获得最大嵌入容量,需要在构造加密图像时保证加密图像与原始图像具有相同行数。图10中给出了8幅测试图像的嵌入率对比,可以直观的看出,本发明的嵌入容量远高于其它算法。
[0159]
安全性分析:
[0160]
如图11和图12所示,为衡量本发明的安全性,以lena测试图像为例进行测试,在相同密钥,安全强度因子为1000,预留空间为1000bits的情况下,lena图像分别生成了两幅加密图像。
[0161]
且两幅加密图像的差值图如图13所示,从图13中可以看出,两个加密图像差异较大。统计可得相同的像素个数仅有604个,且两个加密图像的psnr(峰值信噪比)为7.75db。为进一步说明同幅图像相同密钥情况下,每次生成的加密图像互不相同,以lena图像为例,测试了相同密钥情况下200次生成的加密图像与第一次生成的加密图像的psnr值,结果如图14所示;在测试过程中,将加密图像大小统一为512
×
512,由图14可以看出,从第二次向后生成的加密图像与第一次生成的加密图像互不相同,psnr平均值仅为7.75db。
[0162]
分析可知,在同幅图像相同密钥时,实际偏移值是完全一致的,两幅加密图像的差异主要包括两方面:1)编码表置乱过程中时间密钥不同,生成不同置乱序列使置乱霍夫曼编码表互不相同;2)两次加密过程中生成的原始流长度不同,使得异或加密时的特征密钥不同。此外,若密钥不同时,对同幅图像,生成的实际偏移值也会存在差异,且加密密钥会对特征密钥产生影响,改变异或加密过程中生成的伪随机比特流,使不同密钥生成的加密图像互不相同。
[0163]
时间复杂度比较:
[0164]
以512
×
512的lena图像为例,对本发明及chen等人和yin等人算法的运行时间进行对比测试,结果如图15所示,在图像大小为512
×
512时,本发明的总时间低于1.5s。构造加密图像阶段,由于仅执行异或加密算法,运行时间约为0.1s。结合高效的霍夫曼编码,使生成加密图像过程的平均时间仅为0.84s。且总运行时间上均小于对比文献,因此在算法时间复杂度方面远低于现有算法。
[0165]
本发明提出了可变霍夫曼编码策略;该策略具有三个特点:1)编码表自适应生成。在生成霍夫曼编码过程中,是根据图像生成的预测误差分布自适应生成,能够使霍夫曼编码性能达到最佳,从而实现更高的嵌入容量。2)密钥参与编码过程。类内偏移霍夫曼编码中,偏移序列根据加密密钥产生,因此对同一副图像,当加密密钥不同时,生成的偏移序列不同,从而霍夫曼编码也互不相同。3)编码流长度扩展。安全强度因子约束的霍夫曼编码表生成中,根据安全强度因子限制压缩编码流长度扩展的最大值,当扩展值越大,编码表置乱的密钥空间越大。通过设定合适的安全强度因子值,在满足较高嵌入容量的同时提高安全性。
[0166]
本发明提出了时间戳控制的霍夫曼编码表生成。在霍夫曼编码表生成中,由时间戳确定扩展长度与调整霍夫曼编码表。在相同图像相同密钥的情况下,由于每次执行程序的时间戳不同,生成的加密图像也互不相同,从而有效地抵抗现有的唯密文攻击、已知明文攻击和选择明文攻击等。
[0167]
本发明降低了算法的时间复杂度。加密阶段仅用异或加密,简化了加密算法,且编码算法采用效率较高的霍夫曼编码,使算法具有较低的时间复杂度。
[0168]
综上所述,本发明在提高嵌入容量的同时,能有效地抵抗现有的攻击算法来保证加密图像的安全性,并且算法具有较低的时间复杂度,更好地满足实际需求,使得在应用过程中更加安全高效。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1