结合随机映射和改进缝合线的纹理合成隐藏
2020-01-10李国利邵利平任平安
李国利,邵利平,任平安
(陕西师范大学 计算机科学学院,陕西 西安 710119)
1 概 述
随着互联网的发展,越来越多的信息通过网络传输,在给人们带来极大便利的同时,也存在一定安全隐患。为保护传输中的秘密信息安全,人们提出用图像来隐藏秘密信息的方法,并把它应用在分存[1-4]、密写[5-6]和水印上。但这些方法的本质都是传统修改式嵌入的信息隐藏方法,需修改载体图像,会对嵌密载体视觉质量造成较大影响,容易引起攻击者的怀疑。
为避免这类问题,人们提出了纹理生成式无载体信息隐藏,它主要包括纹理构造式信息隐藏和纹理拼接式信息隐藏。其中纹理构造式信息隐藏是通过模拟纹理生成的方式来产生一些类自然纹理,例如文献[7-9]生成类水影画纹理来隐藏秘密信息,但这类方法所生成的纹理都是非自然纹理,从而不能对秘密信息进行有效掩盖。
纹理拼接式隐藏最早来源于文献[10-11],通过样例纹理填充的方式对表达秘密信息的局部二值模式像素点进行掩盖,但由于不能很好地对局部二值模式进行掩盖,从而易引起密写分析者的怀疑和秘密信息泄露。为避免此问题,文献[12-14]都是通过纹理小块拼接的方式来产生与给定样本相似的含密纹理。但文献[12]引入镜像操作使得编码和非编码样本小块存在明显的区别特征,导致编码小块直接泄露。文献[13-14]中秘密信息分段和样本小块类别之间存在着固定的一一对应关系,易引起攻击者的怀疑,导致安全性较低。另外文献[12-14]都是采用缝合线算法[15]来对重叠区域的纹理进行缝合。缝合线算法的原理是由特定位置出发,在重叠区域寻找差异最小的缝合线将重叠区域的纹理进行缝合,但由特定位置起始的差异最小的缝合线并不意味着是经历重叠区域所有像素差异最小的缝合线,易产生缝合痕迹,从而不能对秘密信息进行掩盖。
针对文献[12-14]存在的问题,文中提出了一种结合随机映射和改进缝合线的纹理合成信息隐藏方法。首先根据样本小块的均值大小将其分为若干个类别,通过结合编码小块的随机放置位置建立起秘密信息分段和样本小块类别之间的随机映射关系,然后结合编码小块的随机坐标位置,从对应样本小块类别中随机选择一个作为编码样本小块来对秘密信息进行表达并将其放置在空白图像中的特定坐标位置上。最后将相邻编码样本小块按改进缝合线纹理合成方法来生成含密纹理。
同文献[12-14]相比,该方法可生成较高质量的纹理图像来对秘密信息进行掩盖;同文献[13-14]相比,秘密信息分段和编码样本小块之间不存在固定的一对一关系,从而具有较高的安全性。
2 隐藏方法
(1)
其中,符号“⎣」”表示向下取整。
(2)
(3)
记二值秘密信息序列B的长度为l,由于编码样本小块P0,P1,…,Pc-1总共有n0个类别,因此每个编码样本小块可表达log2n0个秘密比特,从而将B划分为L组,即:b0,b1,…,bL-1。其中L和l之间满足式4的约束,将b0,b1,…,bL-1转换为10进制数,可得10进制数B0,B1,…,BL-1。
L=「l/log2n0⎤
(4)
(5)
(6)
(7)
注:若Pi=Φ,则意味着Pcur的i边界区不存在相邻的样本块,因此仅需直接将Pcur的i边界区直接放置在对应区域即可,而不需要进行缝合。
(8)
(9)
(10)
(11)
(12)
(13)
(a)Pcur的边界区 (b)与Pcur进行拼接的Ptt
(c)传统裂缝拼接法 (d)改进的裂缝拼接法
3 提取方法
(14)
按式15提取出对应10进制秘密信息Bk,k=0,1,…,L-1,将B0,B1,…,BL-1转换为长度为log2c比特的二值比特位串,从而可得到二进制数b0,b1,…,bL-1,然后按式16截取前l个比特作为最终提取出的秘密信息B。
(15)
B=trunc(b0‖b1‖…‖bL-1,l)
(16)
其中,trunc()函数是二值比特位串截取函数。
4 完整的结合随机映射和改进缝合线的纹理合成信息隐藏与提取算法
以下给出完整的结合随机映射和改进缝合线的纹理合成信息隐藏与恢复算法,记为算法1和算法2。
算法1:结合随机映射和改进缝合线的纹理合成隐藏算法。
(6)用P0,P1,…,Pc来填充Q上的空白区域,将存在重叠区域的小块按照改进缝合线算法对相邻小块拼接,最终将Q作为含密纹理图像输出。
算法2:结合随机映射和改进缝合线的纹理合成信息提取算法。
同文献[12-14]相比,所提方法可生成较高质量的纹理图像来对秘密信息进行掩盖;同文献[13-14]相比,秘密信息分段和编码样本小块之间不存在固定的一对一关系,从而具有较高的安全性。
5 实 验
实验测试环境为Window 10操作系统,CPU为Intel(R) Core(TM) i5-6600,主频为3.31 GHz,内存为8.00 GB,编码语言为JAVA jdk1.8.0_65,采用的测试样例图像如图2(a)和2(b)所示,分别是分辨率为128×128的8位灰度图像stone1和stone2。嵌入秘密信息为“陕西师大”,其对应的二值比特位串为64位,如图2(c)所示。
图2 测试样例图像和二值比特秘密信息
使用峰值信噪比(PSNR)对攻击以后的含密样本图像视觉质量进行衡量,通过误码率(EBR)对秘密信息恢复情况进行评价,所有计算均保留小数点后4位有效数字。PSNR和EBR的计算式为:
(17)
(18)
(19)
其中,berr为错误的秘密信息比特数;ball为秘密信息总比特数。
在实验中,由样例图像按光栅扫描顺序逐像素滑动得到的样本小块分辨率为32×32,这些样本小块的核心区域被设定为样本小块中心大小为16×16的中心区域并按均值大小划分为16个类别。
5.1 正确性验证实验
为验证正确性,选取样例图像(图2(a)和图2(b)),由3组不同的密钥分别按算法1隐藏秘密信息并按算法2提取秘密信息。图3和图4分别给出了生成的含密纹理图像和提取的秘密信息,与之对应的实验参数和秘密信息恢复情况如表1所示,其中生成的含密纹理图像的大小为224×224。
从图3可以看出,算法1生成的含密纹理图不会产生明显的缝合痕迹,整体视觉质量较好。从表1和图4可以看出,对于不同的密钥,算法2均能完全提取秘密信息,提取的秘密信息相对于原秘密信息的EBR为0,说明秘密信息可完整恢复,因此正确性得以验证。
图3 正确性验证实验含密纹理图样
图4 正确性验证实验秘密信息恢复图样
表1 正确性验证实验
5.2 密钥依赖性实验
为验证密钥依赖性,选取图2(a)作为样例图,按表2对密钥R进行调整,然后按算法2提取秘密信息。表2是密钥依赖性实验的参数,其中“-”表示被修改;图5是密钥依赖性实验提取的秘密信息,其中“1”和“0”代表提取的“1”和“0”是错误的。
从表2可看出,密钥参数的改变,将导致提取出的秘密信息EBR趋近于0.5,从而半数左右的秘密信息比特在提取时发生错误,秘密信息无法提取,因此文中所述策略对密钥的改变具有完全的依赖性。
图5 密钥依赖性实验秘密信息恢复图样
表2 密钥依赖性验证实验参数
5.3 抗攻击实验
为验证所提策略的抗攻击能力,按不同强度的椒盐噪声和不同质量因子的JPEG压缩分别对图3(a)嵌密载体进行攻击,然后按算法2提取秘密信息。椒盐噪声攻击强度分别为5%、15%和20%,JPEG压缩中选取的质量因子分别为80和90。图6和图7是攻击后的含密纹理图像和与之对应的秘密信息恢复结果。
图6 抗攻击实验含密纹理图样
图7 抗攻击实验秘密信息恢复图样
表3给出了对应的实验参数。从表3和图6可以看出,椒盐噪声和JPEG压缩都会导致含密纹理图的视觉质量下降。以给定的实验样例纹理为例,对于5%、15%和20%的椒盐噪声攻击,含密纹理图对应的PSNR约为17~9 dB;对于JPEG压缩,当取质量因子为80~90时,其对应的含密纹理图像的PSNR为30.749 8~36.568 2 dB。含密纹理图像尽管遭受了不同程度噪声以及JPEG压缩攻击,当椒盐噪声强度为5%和15%,JPEG压缩质量因子为80和90时,按算法2提取的恢复信息的误码率为0,表明所提方法具备一定的抗攻击能力,且能有效提取秘密信息。
表3 抗攻击实验参数
6 结束语
传统修改式信息隐藏方法[1-6]需修改原始载体图像,不仅会降低载体图像视觉质量,同时也易引起攻击者的怀疑。纹理构造式信息隐藏方法[7-9]只能生成简单质地的非自然纹理,不能对秘密信息进行有效的掩盖。纹理拼接式信息隐藏方法[12-14]秘密信息与样本小块之间存在着固定的映射关系或码块间的区别特征,导致安全性较低。针对以上问题,提出了一种结合随机映射和改进缝合线的纹理合成隐藏方法。首先根据样本小块核心区域均值将其分为若干个类别,每个类别中的小块代表相同的秘密信息,通过编码小块的随机位置建立起秘密信息分段和样本小块类别之间的随机映射关系,然后结合编码小块的随机位置,从对应样本小块类别中随机选择一个样本小块作为编码样本小块来对秘密信息进行编码并将其放置在空白图像中的特定位置上。最后将相邻编码样本小块按改进缝合线纹理合成方法来生成含密纹理图像。实验结果表明,该方法生成的含密纹理图像视觉质量较好,可通过高质量的合成纹理来对秘密信息进行掩盖,秘密信息分段和编码样本小块不一一对应,且完全依赖于用户密钥并具备一定的抗攻击能力。