一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-07-13 23:48:25 来源:中国专利 TAG:


1.本发明属于图像处理技术领域,尤其涉及一种鲁棒的加密图像可逆信息隐藏方法。


背景技术:

2.随着云计算与云存储的广泛使用,图像作为主要使用的载体之一,其安全性逐渐受到大众重视。为提高数字图像在传输及存储时的安全性,研究者们提出图像加密技术。又考虑到加密图像管理困难的特点,将图像加密与信息隐藏技术相结合的加密图像可逆信息隐藏(reversible data hiding in encrypted image,rdhei)被提出。兼顾隐私安全与便捷管理,被广泛应用于军事、医学、法律取证等领域。
3.以隐藏容量及可逆性作为研究的方向,近年来取得了一系列显著成果。2019年,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.)以图像块中相同msbs作为特征,统计后采用霍夫曼编码进行压缩来腾出空间。随后,wang等人(x.wang,c.chang,c.lin.“reversible data hiding in encrypted images with block-based adaptive msb encoding,”information sciences,2021,567:375-394.)与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.)分别提出以图像块中全0或全1msbs数和预测值与像素值相同msbs数作为特征,进行霍夫曼编码压缩的方法。基于霍夫曼编码的rdhei算法由于霍夫曼编码良好的编码性能,实现了高隐藏容量。但弊端也是显而易见的,当压缩编码流内容被篡改时,无法正确实现霍夫曼解码操作,即无法得到正确的恢复图像。
4.同样地,在wu等人(y.wu,y.xiang,y.guo,et al.“an improved reversible data hiding in encrypted images using parametric binary tree labeling,”ieee transactions on multimedia,2020,22(8):1929-1938.)提出的参数二叉树标记压缩中,当加密图像被篡改后,像素中存储的标记也会发生改变,导致误差图与恢复图像错误。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.)提出的基于稀疏矩阵压缩的rdhei中,当生成的压缩编码流被篡改时,将导致图像块恢复错误,进而得到错误的恢复图像。
5.综上所述,现有rdhei算法具有较高的隐藏容量,但加密算法的鲁棒性存在不足,当加密图像在传输或存储时被有意或无意的篡改时,无法得到正确的恢复图像是难以接受的。因此如何实现rdhei算法的鲁棒性,是必须解决的关键问题。


技术实现要素:

6.针对现有技术中的上述不足,本发明提供的一种鲁棒的加密图像可逆信息隐藏方
法,解决了现有技术中在被篡改后无法正确恢复图像的问题。
7.为了达到上述发明目的,本发明采用的技术方案为:本发明提供了一种鲁棒的加密图像可逆信息隐藏方法,包括以下步骤:
8.s1、获取原始图像与加密密钥,对原始图像k个msbs进行加密编码生成总编码流,并根据参考共享机制,生成恢复水印;
9.s2、基于加密密钥,对恢复水印及原始图像的8-k个lsbs进行加密,生成加密恢复水印与加密lsbs;
10.s3、根据加密恢复水印与加密lsbs,生成中间加密图像,并获取认证密钥,生成认证水印嵌入中间加密图像,得到加密图像;
11.s4、获取隐藏密钥与秘密数据,并通过隐藏密钥对秘密数据进行加密,嵌入加密图像中生成载密图像;
12.s5、获取载密图像与认证密钥,确定载密图像被篡改的位置,生成篡改标记图;
13.s6、基于篡改标记图,针对图像恢复时,基于加密密钥对载密图像的高8-k个msbs及加密恢复水印进行解密,得到图像的8-k个lsbs与恢复水印;
14.s7、根据图像的8-k个lsbs与恢复水印,判断是否发生篡改,若是,则根据参考共享机制进行篡改恢复,生成恢复图像,否则,直接恢复原始图像。
15.本发明的有益效果是:本发明提出了鲁棒的图像加密方法。在图像加密过程中,生成恢复水印并嵌入加密图像中。当加密图像或载密图像发生篡改时,通过恢复水印中的压缩编码流与参考比特对被篡改的压缩编码流进行恢复,得到正确的恢复图像。同时,本发明提出了载密图像篡改检测策略。在图像加密时,基于图像块内容与认证密钥生成块认证水印并嵌入加密图像中。检测时将图像块中嵌入的块认证水印与重新生成的认证水印进行对比,确定载密图像中被篡改图像块位置及秘密数据未篡改内容。综上所述,本发明在加密图像或载密图像发生篡改时,能准确定位到被篡改位置,并且能得到正确的恢复图像,兼顾了加密算法的安全性与鲁棒性,更好地满足数字图像在传输存储中的鲁棒性,更适用于实际应用场景。
16.进一步地,所述步骤s1包括以下步骤:
17.s101、获取原始图像,将原始图像的高k个msbs组成高位面图像,选取高位面图像的某个像素作为参考像素,并采用预测法计算其余像素的预测误差值,生成对应的预测误差图;
18.s102、根据预测误差图中各预测误差值出现的频率生成霍夫曼编码表;
19.s103、统计霍夫曼编码表中各码字长度,并根据码字长度对编码表中各码字进行分组;
20.s104、获取时间戳,生成时间密钥,将时间密钥与组内码字个数之和作为种子执行置乱序列生成函数randperm(d,seed),生成与当前组内码字个数相同的置乱序列,并对组内码字进行置乱;其中,d为分组中码字的个数,seed为时间密钥与组内码字长度之和生成的种子;
21.s105、判断是否所有分组的码字均完成置乱,若是,则生成置乱编码表,并进入步骤s106,否则,返回步骤s104;
22.s106、获取加密密钥,以加密密钥作为种子执行随机偏移矩阵生成函数rand(m,n,
seed1),得到大小与高位面图像相同的十进制偏移矩阵;其中,m为高位面图像的行数,n为高位面图像的列数,seed1为加密密钥生成的种子;
23.s107、在编码过程中,针对预测误差图的首个误差值进行编码时,确定首个误差值对应置乱编码表中的位置,以及根据码字长度确定所在分组及组内序号,并结合十进制偏移矩阵中第一个值执行公式t'=mod(t g,d)确定偏移序号,得到首个误差值对应的码字,所述首个误差值对应的码字为所在分组的第t'个码字;其中,t'为组内偏移序号,t为组内原始序号,g为十进制偏移矩阵中的偏移值,d为所在分组中码字的个数;
24.s108、依次生成预测误差图中所有误差值的编码,将所有误差值的编码连接生成压缩编码流;
25.s109、将置乱编码表处理为二进制数据,将其与二进制的压缩编码流长度组成辅助数据,并基于加密密钥进行des加密,生成加密辅助数据;
26.s1010、根据公式kf=hash(ke,auxdata)生成特征密钥,基于特征密钥结合随机序列生成函数rand(1,len,seed2),生成长度与压缩编码流长度相同的二进制随机序列;其中,ke为加密密钥,auxdata为辅助数据,len为压缩编码流长度,seed2为特征密钥生成的种子,hash(
·
)为哈希函数,kf为特征密钥;
27.s1011、将压缩编码流与生成的二进制随机序列进行异或处理,生成加密压缩编码流;
28.s1012、将加密辅助数据长度的二进制序列、加密辅助数据和加密压缩编码流组合为总编码流;
29.s1013、根据公式计算分组数;其中,group为分组数,20bits空间用于存储分组数的二进制形式,lenc为总编码流长度,clen为组内原始比特长度,默认为256,为上取整操作,当不能整分组时,在总编码流后补0;
30.s1014、以加密密钥作为种子执行随机置乱序列生成函数randperm(group
×
clen-20,seed1)生成置乱序列,对补0后的总编码流进行置乱加密生成置乱编码流;
31.s1015、将分组数的二进制形式与置乱编码流组合为原始比特流,并重排行数为clen以及列数为分组数的原始矩阵;
32.s1016、以加密密钥作为种子执行随机矩阵生成函数rand(rlen,clen,seed1)得到二进制随机矩阵;其中,rlen为组内参考比特长度,默认为128,clen为组内原始比特长度,默认为256,seed1为加密密钥生成的种子;
33.s1017、将原始矩阵与生成的二进制随机矩阵进行矩阵相乘,生成行数为rlen以及列数为组数的参考矩阵;
34.s1018、将原始矩阵与参考矩阵进行列合并,并重排为一行,生成恢复水印。
35.上述进一步方案的有益效果是:本发明中加密编码过程在编码压缩腾出空间的同时,引入时间密钥实现一次一密的加密算法,兼顾了隐藏容量与安全性。同时,恢复水印的生成为篡改恢复提供了基础。
36.再进一步地,所述步骤s2包括以下步骤:
37.s201、获取加密密钥,以加密密钥作为种子执行随机置乱序列生成函数randperm((clen rlen)
×
group,seed1),生成与恢复水印相同长度的置乱序列,基于该置乱序列,对
恢复水印进行置乱加密生成置乱恢复水印,并以加密密钥作为种子执行随机序列生成函数rand(1,(clen rlen)
×
group,seed1),得到长度与置乱恢复水印长度相同的二进制序列,将长度与置乱恢复水印长度相同的二进制序列与置乱恢复水印进行异或加密,得到加密恢复水印;其中,rlen为组内参考比特长度,默认为128,clen为组内原始比特长度,默认为256;
38.s202、获取原始图像,将原始图像的8-k个lsbs组成低位面图像,以加密密钥作为种子执行随机置乱序列生成函数randperm(m1×
n1,seed1),生成与低位面图像大小相同的置乱序列,基于该置乱序列,对低位面图像进行置乱加密,并与执行随机序列生成函数rand(m1,n1,seed1)得到的二进制序列进行异或加密,得到加密lsbs;其中,m1为低位面图像的行数,n1为低位面图像的列数。
39.上述进一步方案的有益效果是:本发明通过对恢复水印和原始图像的lsbs分别进行置乱及异或加密,保证了加密图像的安全性。
40.再进一步地,所述步骤s3包括以下步骤:
41.s301、将加密lsbs作为中间加密图像的8-k个msbs;
42.s302、获取认证密钥,将时间密钥转化为50bits的比特流,并复制扩展至(m2/8)
×
(n2/8)比特流,将扩展后的比特流与认证密钥作为种子生成的二进制序列进行异或处理,生成认证序列,其中,其中,m2为原始图像的行数,n2为原始图像的列数;
43.s303、将加密恢复水印等分为(m2/8)
×
(n2/8)份,在每份后填充认证序列中的一位及全0比特使长度为8
×8×
k,并作为中间加密图像每个8
×
8图像块的k个lsbs;
44.s304、将中间加密图像中每个8
×
8图像块中像素值转化为字符串形式;
45.s305、将时间密钥转化为字符串形式,并与首个图像块中所有像素值转化的字符串位连接,生成哈希密钥,并根据h=hash(kh)生成哈希序列,选取前30bits作为认证水印,嵌入至中间加密图像首个图像块中的认证序列位置后;其中,kh为哈希密钥,h为哈希序列;
46.s306、依次对中间加密图像中所有图像块执行认证水印生成及嵌入操作,生成加密图像。
47.上述进一步方案的有益效果是:本发明基于时间密钥与认证密钥生成的认证序列具有重复特性,在篡改比例不高时可实现时间密钥的无损恢复,认证比特则可实现加密图像或载密图像的篡改检测。
48.再进一步地,所述步骤s4包括以下步骤:
49.s401、获取隐藏密钥与秘密数据,通过隐藏密钥对秘密数据进行加密处理,生成加密秘密数据;
50.s402、获取加密图像,将加密图像分为8
×
8大小的图像块,并将加密秘密数据嵌入每个加密图像块的认证水印之后,生成载密图像。
51.上述进一步方案的有益效果是:本发明在加密图像中隐藏与图像相关的秘密数据,例如,图像所有者姓名、图像类别等,可以提高对加密图像管理的效率。
52.再进一步地,所述步骤s5包括以下步骤:
53.s501、获取载密图像,将其分为8
×
8的载密图像块,从每个载密图像块的lsbs中提取出30bits认证水印;
54.s502、获取认证密钥,提取每个载密图像块认证水印的前一位,组成认证序列,恢
复时间密钥;
55.s503、将载密图像块中认证序列、认证水印与秘密数据进行置0处理,并将时间密钥与载密图像块中所有像素值转化为字符串形式,位连接为哈希密钥,根据h=hash(kh)生成哈希序列并选取前30bits;
56.s504、将获取的哈希序列前30bits与载密图像块中提取的认证水印进行对比,若一致,则当前载密图像块未发生篡改,篡改标记图对应位置标记为1;若不一致,则发生篡改,篡改标记图对应位置标记为0。
57.上述进一步方案的有益效果是:篡改标记图可以正确标识出加密图像或载密图像被篡改的位置,实现篡改检测功能。
58.再进一步地,所述步骤s6包括以下步骤:
59.s601、在图像恢复时,提取加密图像的8-k个msbs组成载密高位面图像,获取加密密钥,以加密密钥作为种子执行随机序列生成函数rand(m3,n3,seed1)得到的二进制序列,对载密高位面图像进行异或解密处理,并执行随机置乱序列生成函数randperm(m3×
n3,seed1),生成与载密高位面图像大小相同的置乱序列,将置乱序列作为图像的8-k个lsbs;其中,m3为载密高位面图像的行数,n3为载密高位面图像的列数;
60.s602、将载密图像分为8
×
8的载密图像块,并从每个载密图像块的lsbs中提取出恢复水印部分,组成恢复水印;
61.s603、以加密密钥作为种子执行随机序列生成函数rand(1,group
×
(clen rlen),seed1),得到长度与提取的恢复水印长度相同的二进制序列,并进行异或解密生成置乱恢复水印;其中,rlen为组内参考比特长度,默认为128,clen为组内原始比特长度,默认为256;
62.s604、根据篡改标记图中标记出的篡改块位置,将置乱恢复水印中从篡改块提取出的内容全部修改为小于0的值;
63.s605、以加密密钥作为种子执行随机置乱序列生成函数randperm(group
×
(clen rlen),seed1),生成与置乱恢复水印相同长度的置乱序列,对置乱恢复水印进行置乱解密,生成恢复水印。
64.上述进一步方案的有益效果是:恢复水印的可逆提取是图像恢复的基础,结合篡改标记图,可确定恢复水印中被篡改的部分,进而实现篡改恢复。
65.再进一步地,所述步骤s7包括以下步骤:
66.s701、提取恢复水印的前20bits,并判断前20bits的恢复水印是否发生篡改,若未发生篡改,则转化为十进制形式得到分组数,并进入步骤s702;若发生篡改,则根据恢复水印的前clen rlenbits,以及步骤s604结中提取的内容,结合参考共享机制进行篡改恢复,由篡改恢复后的恢复水印前20bits得到分组数,并进入步骤s702,其中,rlen为组内参考比特长度,默认为128,clen为组内原始比特长度,默认为256;
67.s702、将恢复水印重排为行数为clen rlen以及列数为分组数的恢复水印矩阵;
68.s703、判断重排后的恢复水印是否发生篡改,若未发生篡改,则将恢复水印矩阵的前clen行展开为一行,作为原始比特流,并进入步骤s704;若发生篡改,则根据恢复水印矩阵每列的clen rlenbits,结合参考共享机制进行篡改恢复,并提取篡改恢复后恢复水印矩阵的前clen行,展开为原始比特流,并进入步骤s704;
69.s704、删除原始比特流的前20bits,得到置乱编码流;
70.s705、以加密密钥作为种子执行随机置乱序列生成函数randperm(group
×
clen-20,seed1)生成置乱序列,对置乱编码流进行解密生成总编码流;其中,clen默认为256;
71.s706、基于加密密钥对总编码流进行解码,并根据篡改标记图判断载密图像是否发生篡改,若未发生篡改,则根据解码后得到原始图像的高k个msbs结合步骤s601得到图像的8-k个lsbs,恢复出原始图像;若发生篡改,则根据解码得到恢复图像的高k个msbs结合s601中的8-k个lsbs生成恢复图像。
72.上述进一步方案的有益效果是:当加密图像或载密图像未发生篡改时,能恢复原始图像;当发生篡改时,可生成与原始图像近似的恢复图像,实现了加密算法的鲁棒性。
73.再进一步地,所述步骤s706中对总编码流进行解码,包括以下步骤:
74.a1、提取总编码流中前8位,转化为十进制形式得到辅助数据长度;
75.a2、根据辅助数据长度,提取出总编码流中的加密辅助数据,并基于加密密钥对加密辅助数据执行des解密,生成辅助数据,得到置乱编码表与压缩编码流长度;
76.a3、基于特征密钥kf=hash(ke,auxdata),执行随机序列生成函数rand(1,len,seed2),生成长度与压缩编码流长度相同的二进制随机序列;其中,ke为加密密钥,auxdata为辅助数据,len为压缩编码流长度,seed2为特征密钥生成的种子;
77.a4、根据压缩编码流长度,从总编码流中提取加密压缩编码流与生成的二进制随机序列进行异或处理,生成压缩编码流;
78.a5、以加密密钥作为种子执行随机偏移矩阵生成函数rand(m4,n4,seed1),得到大小与恢复图像相同的十进制偏移矩阵;其中,m4为恢复图像的行数,n4为恢复图像的列数,seed1为加密密钥生成的种子;
79.a6、统计置乱编码表中各码字长度并进行分组,在解码过程中,查找置乱编码表确定压缩编码流中首个码字长度以及确定所在分组及在分组中的序号,结合随机偏移矩阵的第一个值执行t=mod(t'-g,d)确定实际序号,查找置乱编码表获得对应的误差值,将该误差值作为预测误差图中第一个值;其中,t为组内实际序号,t'为组内序号,g为十进制偏移矩阵中的偏移值,d为所在分组中码字的个数;
80.a7、将压缩编码流全部解码后,得到预测误差图;
81.a8、采用预测恢复方法,根据预测误差图恢复方法生成图像的k个msbs。
82.上述进一步方案的有益效果是:通过解码过程可无损恢复出恢复图像的msbs,实现了算法的可逆性。
附图说明
83.图1为本发明的流程图。
84.图2为lena测试图像。
85.图3为napoleon测试图像。
86.图4为mona测试图像。
87.图5为lena加密图像。
88.图6为napoleon加密图像。
89.图7为mona加密图像。
90.图8为wu算法未篡改时的恢复图像(峰值信噪比psnr=∞)。
91.图9为yin算法未篡改时的恢复图像(峰值信噪比psnr=∞)。
92.图10为本发明未篡改时的篡改标记图。
93.图11为本发明未篡改时的恢复图像(峰值信噪比psnr=∞)。
94.图12为wu算法在区域篡改大小为100
×
100时的恢复图像(峰值信噪比psnr=29.34db)。
95.图13为yin算法在区域篡改大小为100
×
100时的恢复图像(峰值信噪比psnr=8.49db)。
96.图14为本发明在区域篡改大小为100
×
100时的篡改标记图。
97.图15为本发明在区域篡改大小为100
×
100时的恢复图像(峰值信噪比psnr=39.94db)。
98.图16为wu算法在区域篡改大小为200
×
200时的恢复图像(峰值信噪比psnr=19.41db)。
99.图17为yin算法在区域篡改大小为200
×
200时的恢复图像(峰值信噪比psnr=9.20db)。
100.图18为本发明在区域篡改大小为200
×
200时的篡改标记图。
101.图19为本发明在区域篡改大小为200
×
200时的恢复图像(峰值信噪比psnr=33.94db)。
102.图20为wu算法在区域篡改大小为250
×
250时的恢复图像(峰值信噪比psnr=18.87db)。
103.图21为yin算法在区域篡改大小为250
×
250时的恢复图像(峰值信噪比psnr=9.12db)。
104.图22为本发明在区域篡改大小为250
×
250时的篡改标记图。
105.图23为本发明在区域篡改大小为250
×
250时的恢复图像(峰值信噪比psnr=32.02db)。
106.图24为wu算法在随机篡改时的恢复图像(峰值信噪比psnr=40.99db)。
107.图25为yin算法在随机篡改时的恢复图像(峰值信噪比psnr=9.69db)。
108.图26为本发明在随机篡改时的篡改标记图。
109.图27为本发明在随机篡改时的恢复图像(峰值信噪比psnr=66.4022db)。
110.图28为wu算法在拼贴攻击时的恢复图像(峰值信噪比psnr=15.45db)。
111.图29为yin算法在拼贴攻击时的恢复图像(峰值信噪比psnr=8.99db)。
112.图30为本发明在拼贴攻击时的篡改标记图。
113.图31为本发明在拼贴攻击时的恢复图像(峰值信噪比psnr=33.90db)。
114.图32为本发明与参考文献算法嵌入容量比较图。
具体实施方式
115.下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易
见的,一切利用本发明构思的发明创造均在保护之列。
116.在对本发明进行说明前,先对以下参数进行解释:
117.参数含义msbs最高有效位lsbs最低有效位
118.如图1所示,本发明提供了一种鲁棒的加密图像可逆信息隐藏方法,其实现方法如下:
119.s1、获取原始图像与加密密钥,对原始图像k个msbs进行加密编码生成总编码流,并根据参考共享机制,生成恢复水印,其实现方法如下:
120.s101、获取原始图像,将原始图像的高k个msbs组成高位面图像,选取高位面图像的某个像素作为参考像素,并采用预测法计算其余像素的预测误差值,生成对应的预测误差图;
121.s102、根据预测误差图中各预测误差值出现的频率生成霍夫曼编码表;
122.s103、统计霍夫曼编码表中各码字长度,并根据码字长度对编码表中各码字进行分组;
123.s104、获取时间戳,生成时间密钥,将时间密钥与组内码字个数之和作为种子执行置乱序列生成函数randperm(d,seed),生成与当前组内码字个数相同的置乱序列,并对组内码字进行置乱;其中,d为分组中码字的个数,seed为时间密钥与组内码字长度之和生成的种子;
124.s105、判断是否所有分组的码字均完成置乱,若是,则生成置乱编码表,并进入步骤s106,否则,返回步骤s104;
125.s106、获取加密密钥,以加密密钥作为种子执行随机偏移矩阵生成函数rand(m,n,seed1),得到大小与高位面图像相同的十进制偏移矩阵;其中,m为高位面图像的行数,n为高位面图像的列数,seed1为加密密钥生成的种子;
126.s107、在编码过程中,针对预测误差图的首个误差值进行编码时,确定首个误差值对应置乱编码表中的位置,以及根据码字长度确定所在分组及组内序号,并结合十进制偏移矩阵中第一个值执行公式t'=mod(t g,d)确定偏移序号,得到首个误差值对应的码字,所述首个误差值对应的码字为所在分组的第t'个码字;其中,t'为组内偏移序号,t为组内原始序号,g为十进制偏移矩阵中的偏移值,d为所在分组中码字的个数;
127.s108、依次生成预测误差图中所有误差值的编码,将所有误差值的编码连接生成压缩编码流;
128.s109、将置乱编码表处理为二进制数据,将其与二进制的压缩编码流长度组成辅助数据,并基于加密密钥进行des加密,生成加密辅助数据;
129.s1010、根据公式kf=hash(ke,auxdata)生成特征密钥,基于特征密钥结合随机序列生成函数rand(1,len,seed2),生成长度与压缩编码流长度相同的二进制随机序列;其中,ke为加密密钥,auxdata为辅助数据,len为压缩编码流长度,seed2为特征密钥生成的种子,hash(
·
)为哈希函数,kf为特征密钥;
130.s1011、将压缩编码流与生成的二进制随机序列进行异或处理,生成加密压缩编码流;
131.s1012、将加密辅助数据长度的二进制序列、加密辅助数据和加密压缩编码流组合为总编码流;
132.s1013、根据公式计算分组数;其中,group为分组数,20bits空间用于存储分组数的二进制形式,lenc为总编码流长度,clen为组内原始比特长度,默认为256,为上取整操作,当不能整分组时,在总编码流后补0;
133.s1014、以加密密钥作为种子执行随机置乱序列生成函数randperm(group
×
clen-20,seed1)生成置乱序列,对补0后的总编码流进行置乱加密生成置乱编码流;
134.s1015、将分组数的二进制形式与置乱编码流组合为原始比特流,并重排行数为clen以及列数为分组数的原始矩阵;
135.s1016、以加密密钥作为种子执行随机矩阵生成函数rand(rlen,clen,seed1)得到二进制随机矩阵;其中,rlen为组内参考比特长度,默认为128,clen为组内原始比特长度,默认为256,seed1为加密密钥生成的种子;
136.s1017、将原始矩阵与生成的二进制随机矩阵进行矩阵相乘,生成行数为rlen以及列数为组数的参考矩阵;
137.s1018、将原始矩阵与参考矩阵进行列合并,并重排为一行,生成恢复水印;
138.s2、基于加密密钥,对恢复水印及原始图像的8-k个lsbs进行加密,生成加密恢复水印与加密lsbs,其实现方法如下:
139.s201、获取加密密钥,以加密密钥作为种子执行随机置乱序列生成函数randperm((clen rlen)
×
group,seed1),生成与恢复水印相同长度的置乱序列,基于该置乱序列,对恢复水印进行置乱加密生成置乱恢复水印,并以加密密钥作为种子执行随机序列生成函数rand(1,(clen rlen)
×
group,seed1),得到长度与置乱恢复水印长度相同的二进制序列,将长度与置乱恢复水印长度相同的二进制序列与置乱恢复水印进行异或加密,得到加密恢复水印;其中,rlen为组内参考比特长度,默认为128,clen为组内原始比特长度,默认为256;
140.s202、获取原始图像,将原始图像的8-k个lsbs组成低位面图像,以加密密钥作为种子执行随机置乱序列生成函数randperm(m1×
n1,seed1),生成与低位面图像大小相同的置乱序列,基于该置乱序列,对低位面图像进行置乱加密,并与执行随机序列生成函数rand(m1,n1,seed1)得到的二进制序列进行异或加密,得到加密lsbs;其中,m1为低位面图像的行数,n1为低位面图像的列数;
141.s3、根据加密恢复水印与加密lsbs,生成中间加密图像,并获取认证密钥,生成认证水印嵌入中间加密图像,得到加密图像,其实现方法如下:
142.s301、将加密lsbs作为中间加密图像的8-k个msbs;
143.s302、获取认证密钥,将时间密钥转化为50bits的比特流,并复制扩展至(m2/8)
×
(n2/8)比特流,将扩展后的比特流与认证密钥作为种子生成的二进制序列进行异或处理,生成认证序列,其中,其中,m2为原始图像的行数,n2为原始图像的列数;
144.s303、将加密恢复水印等分为(m2/8)
×
(n2/8)份,在每份后填充认证序列中的一位及全0比特使长度为8
×8×
k,并作为中间加密图像每个8
×
8图像块的k个lsbs;
145.s304、将中间加密图像中每个8
×
8图像块中像素值转化为字符串形式;
146.s305、将时间密钥转化为字符串形式,并与首个图像块中所有像素值转化的字符串位连接,生成哈希密钥,并根据h=hash(kh)生成哈希序列,选取前30bits作为认证水印,嵌入至中间加密图像首个图像块中的认证序列位置后;其中,kh为哈希密钥,h为哈希序列;
147.s306、依次对中间加密图像中所有图像块执行认证水印生成及嵌入操作,生成加密图像;
148.s4、获取隐藏密钥与秘密数据,并通过隐藏密钥对秘密数据进行加密,嵌入加密图像中生成载密图像,其实现方法如下:
149.s401、获取隐藏密钥与秘密数据,通过隐藏密钥对秘密数据进行加密处理,生成加密秘密数据;
150.s402、获取加密图像,将加密图像分为8
×
8大小的图像块,并将加密秘密数据嵌入每个加密图像块的认证水印之后,生成载密图像;
151.s5、获取载密图像与认证密钥,确定载密图像被篡改的位置,生成篡改标记图,其实现方法如下:
152.s501、获取载密图像,将其分为8
×
8的载密图像块,从每个载密图像块的lsbs中提取出30bits认证水印;
153.s502、获取认证密钥,提取每个载密图像块认证水印的前一位,组成认证序列,恢复时间密钥;
154.s503、将载密图像块中认证序列、认证水印与秘密数据进行置0处理,并将时间密钥与载密图像块中所有像素值转化为字符串形式,位连接为哈希密钥,根据h=hash(kh)生成哈希序列并选取前30bits;
155.s504、将获取的哈希序列前30bits与载密图像块中提取的认证水印进行对比,若一致,则当前载密图像块未发生篡改,篡改标记图对应位置标记为1;若不一致,则发生篡改,篡改标记图对应位置标记为0;
156.s6、基于篡改标记图,针对图像恢复时,基于加密密钥对载密图像的高8-k个msbs及加密恢复水印进行解密,得到图像的8-k个lsbs与恢复水印,其实现方法如下:
157.s601、在图像恢复时,提取加密图像的8-k个msbs组成载密高位面图像,获取加密密钥,以加密密钥作为种子执行随机序列生成函数rand(m3,n3,seed1)得到的二进制序列,对载密高位面图像进行异或解密处理,并执行随机置乱序列生成函数randperm(m3×
n3,seed1),生成与载密高位面图像大小相同的置乱序列,将置乱序列作为图像的8-k个lsbs;其中,m3为载密高位面图像的行数,n3为载密高位面图像的列数;
158.s602、将载密图像分为8
×
8的载密图像块,并从每个载密图像块的lsbs中提取出恢复水印部分,组成恢复水印;
159.s603、以加密密钥作为种子执行随机序列生成函数rand(1,group
×
(clen rlen),seed1),得到长度与提取的恢复水印长度相同的二进制序列,并进行异或解密生成置乱恢复水印;其中,rlen为组内参考比特长度,默认为128,clen为组内原始比特长度,默认为256;
160.s604、根据篡改标记图中标记出的篡改块位置,将置乱恢复水印中从篡改块提取出的内容全部修改为小于0的值;
161.s605、以加密密钥作为种子执行随机置乱序列生成函数randperm(group
×
(clen
rlen),seed1),生成与置乱恢复水印相同长度的置乱序列,对置乱恢复水印进行置乱解密,生成恢复水印;
162.s7、根据图像的8-k个lsbs与恢复水印,判断是否发生篡改,若是,则根据参考共享机制进行篡改恢复,生成恢复图像,否则,直接恢复原始图像,其实现方法如下:
163.s701、提取恢复水印的前20bits,并判断前20bits的恢复水印是否发生篡改,若未发生篡改,则转化为十进制形式得到分组数,并进入步骤s702;若发生篡改,则根据恢复水印的前clen rlenbits,以及步骤s604结中提取的内容,结合参考共享机制进行篡改恢复,由篡改恢复后的恢复水印前20bits得到分组数,并进入步骤s702,其中,rlen为组内参考比特长度,默认为128,clen为组内原始比特长度,默认为256;
164.s702、将恢复水印重排为行数为clen rlen以及列数为分组数的恢复水印矩阵;
165.s703、判断重排后的恢复水印是否发生篡改,若未发生篡改,则将恢复水印矩阵的前clen行展开为一行,作为原始比特流,并进入步骤s704;若发生篡改,则根据恢复水印矩阵每列的clen rlenbits,结合参考共享机制进行篡改恢复,并提取篡改恢复后恢复水印矩阵的前clen行,展开为原始比特流,并进入步骤s704;
166.s704、删除原始比特流的前20bits,得到置乱编码流;
167.s705、以加密密钥作为种子执行随机置乱序列生成函数randperm(group
×
clen-20,seed1)生成置乱序列,对置乱编码流进行解密生成总编码流;其中,clen默认为256;
168.s706、基于加密密钥对总编码流进行解码,并根据篡改标记图判断载密图像是否发生篡改,若未发生篡改,则根据解码后得到原始图像的高k个msbs结合步骤s601得到图像的8-k个lsbs,恢复出原始图像;若发生篡改,则根据解码得到恢复图像的高k个msbs结合s601中的8-k个lsbs生成恢复图像,所述步骤s706中对总编码流进行解码,包括以下步骤:
169.a1、提取总编码流中前8位,转化为十进制形式得到辅助数据长度;
170.a2、根据辅助数据长度,提取出总编码流中的加密辅助数据,并基于加密密钥对加密辅助数据执行des解密,生成辅助数据,得到置乱编码表与压缩编码流长度;
171.a3、基于特征密钥kf=hash(ke,auxdata),执行随机序列生成函数rand(1,len,seed2),生成长度与压缩编码流长度相同的二进制随机序列;其中,ke为加密密钥,auxdata为辅助数据,len为压缩编码流长度,seed2为特征密钥生成的种子;
172.a4、根据压缩编码流长度,从总编码流中提取加密压缩编码流与生成的二进制随机序列进行异或处理,生成压缩编码流;
173.a5、以加密密钥作为种子执行随机偏移矩阵生成函数rand(m4,n4,seed1),得到大小与恢复图像相同的十进制偏移矩阵;其中,m4为恢复图像的行数,n4为恢复图像的列数,seed1为加密密钥生成的种子;
174.a6、统计置乱编码表中各码字长度并进行分组,在解码过程中,查找置乱编码表确定压缩编码流中首个码字长度以及确定所在分组及在分组中的序号,结合随机偏移矩阵的第一个值执行t=mod(t'-g,d)确定实际序号,查找置乱编码表获得对应的误差值,将该误差值作为预测误差图中第一个值;其中,t为组内实际序号,t'为组内序号,g为十进制偏移矩阵中的偏移值,d为所在分组中码字的个数;
175.a7、将压缩编码流全部解码后,得到预测误差图;
176.a8、采用预测恢复方法,根据预测误差图恢复方法生成图像的k个msbs。
177.鲁棒性对比:
178.在实验过程中,选取图2所示的lena、图3所示的napolen和图4所示的mona作为测试图像,并令k=3。为评估本文加密算法的鲁棒性,将本发明与wu等人(wu et al.)和yin等人(yin et al.)在加密图像未篡改、发生区域篡改、随机篡改及拼贴攻击时的结果进行对比,分析结果如下。
179.当加密图像未发生篡改时,wu等人提出算法的恢复图像如图8所示,yin等人提出算法的恢复图像如图9所示,本发明的篡改标记图与恢复图像如图10和图11所示,均可实现可逆恢复,恢复图像与原始图像一致,且本发明的篡改标记图为全0。
180.当加密图像发生区域篡改时,实验中篡改区域分别为(250-350,250-350)、(150-350,150-350)、(100-350,100-350)的方形,wu等人提出算法的恢复图像如图12、图16、图20所示,图像中虽然背景内容依旧清晰,但最重要的人脸已经无法识别。yin等人算法的恢复图像如图13、图17、图21所示,已经无法看出lena图像的相关信息,分析原因为当加密图像发生篡改时,图内保存的霍夫曼编码被修改,导致解码错误,进而得到错误的恢复图像。由图14、图18及图22可以看出,本发明则能够准确确定出区域篡改位置,并得到如图15、图19与图23所示与原始图像近似的恢复图像,即使当篡改区域大小为250
×
250时,恢复图像的psnr仍可达到32.02db。
181.当发生随机篡改时,由于篡改比例较小,wu等人算法的恢复图像如图24所示,依旧可以看出原始图像内容,但psnr仅为40.99db。yin等人算法的回复结果如图25所示,因为解码错误导致恢复图像错误。本发明的篡改标记图与恢复图像如图26与图27所示,相较于两篇参考算法具有明显优势,在篡改标记出正确标记出被篡改位置的同时,恢复图像psnr可达66.40db。
182.在拼贴攻击对比中,选取了如图3的napolen和如图4的mona作为测试图像,实验中分别在相同密钥下通过不同算法生成两幅图像的加密图像,并将mona加密图像的一部分替代napolen加密图像中相同位置。从图28可以看出,wu等人算法在拼贴攻击下的恢复图像是mona与napolen的结合,无法辨别出原始图像内容。yin等人得到如图29的恢复图像也无法看出原始图像内容。本发明通过如图30的篡改标记图与如图31的恢复图像,可以看出能有效抵抗拼贴攻击,且恢复图像中依旧能清晰看出napolen的完整信息。
183.因此,本发明在通过加密算法生成图5所示的lena加密图像,图6所示的napolen加密图像和图7所示mona加密图像中可以看出,本发明生成的加密图像未泄露原始图像内容,在保证安全性的基础上,实现了未篡改时算法的可逆性与被篡改时的鲁棒性。
184.隐藏容量对比:
185.在隐藏容量上,将本发明与wu等人(wu et al.)和yin等人(yin et al.)提出算法进行对比,结果如图32所示。可以看出,本文算法的隐藏容量低于现有算法,分析原因可知,对比文献中利用了原始图像整体冗余,而本发明在实验过程中仅利用了3个msbs的冗余,并且为实现加密算法的鲁棒性,引入参考比特与认证水印,也会导致隐藏容量的降低。总的来说,本发明在保证加密算法鲁棒性的基础上,依旧能达到图32所示的1.6bpp以上的嵌入容量,满足一般实际应用的需求。
186.本发明提出了鲁棒的图像加密方法。在图像加密过程中,生成恢复水印并嵌入加密图像中。当加密图像或载密图像发生篡改时,通过恢复水印中的压缩编码流与参考比特
对被篡改的压缩编码流进行恢复,得到正确的恢复图像。
187.本发明提出了载密图像篡改检测策略。在图像加密时,基于图像块内容与认证密钥生成块认证水印并嵌入加密图像中。检测时将图像块中嵌入的块认证水印与重新生成的认证水印进行对比,确定载密图像中被篡改图像块位置及秘密数据未篡改内容。
188.综上所述,本发明在加密图像或载密图像发生篡改时,能准确定位到被篡改位置,并且能得到正确的恢复图像,兼顾了加密算法的安全性与鲁棒性,更好地满足数字图像在传输存储中的鲁棒性,更适用于实际应用场景。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献