基于字符画的生成式伪装方法
2019-12-11邵利平
王 洋,邵利平,陆 海
(陕西师范大学 计算机科学学院,陕西 西安 710119)
1 概 述
随着计算机和网络技术的发展,网络传输信息的安全性变得尤为重要。为保证其安全性,人们提出了多种以图像为载体的信息隐藏方法,如密写[1-3]、分存[4-7]、水印[8]和伪装[9-14]等。其中基于块替换和块拼图的马赛克伪装策略是一类典型的信息隐藏方法。
这类方法通常将密图划分为小块作为马赛克,通过对有意义掩体图像的相似块替换来隐藏密图或将密图划分小块作为字典,采用拼图的方法来产生与之不相关的含密有意义掩体。例如,文献[9]通过在大数据库中选取与密图特征相似的公开图像,通过相似块替换,将密图伪装成公开图像。为避免大数据库搜索和确保含密掩体视觉质量,文献[10-11]采用相似块替换,将一幅秘密图像隐藏在多幅图像中,即将密图小块划分为n份嵌入n张掩体图像中。为提高隐藏效率和减少匹配误差,文献[12]按密图小块和掩体小块的均值和标准差排序来建立密图小块和掩体小块的映射关系,然后由密图小块重构掩体图像。文献[13]在文献[12]的基础上,进一步引入均值聚类对密图小块和掩体小块进行分类和匹配。文献[14]采用分类阈值优化算法来改进文献[13],使密图小块与掩体小块之间的匹配均方误差更小。
文献[9-14]可生成有意义含密掩体图像来对隐藏的密图进行掩盖。然而这些文献都不可避免地涉及参数的嵌入,例如文献[9-11]需要嵌入密图小块在原密图的位置信息,文献[12-14]则需要嵌入掩体小块索引或聚类索引、密图小块与掩体小块均值差、密图小块的旋转方向以及截断残差等额外参数。针对额外参数的嵌入方式,上述文献均采用修改式嵌密的方法,例如文献[9,12-14]采用基于LSB的可逆嵌入方法[15]嵌入和提取额外参数;文献[10]通过简单LSB方法将相关参数嵌入到掩体图像中;文献[11]通过差值扩展嵌入相关参数并提取秘密信息。
而这样的做法带来的问题是,修改式嵌密的方法难免会在掩体图像中遗留下修改的痕迹,难以抵抗密写分析算法的检测,容易引起信道潜在攻击者的怀疑;文献[9-14]均涉及LSB嵌入,对非显著比特位较敏感,鲁棒性差,在遭受攻击时,容易导致嵌入的参数丢失。
针对上述缺陷,文中以字符画为特殊载体,通过在与密钥相关的嵌密位置放置字符来表达秘密信息。首先,利用密钥生成随机坐标序列决定秘密比特在掩体图像中的嵌密位置;之后,遍历掩体图像像素,对于嵌密和非嵌密位置,分别放置与密钥和位置信息相关联或与掩体放置位置像素相近的字符来对秘密比特进行表达和掩盖;最后,将字符放置过程产生的偏差利用误差扩散传递给掩体周围未处理像素,从而产生含密字符画图像。在恢复阶段,利用密钥确定秘密比特嵌入位置,并利用密钥和位置信息提取对应嵌密位置的秘密比特。
相比于文献[9-14],文中采用生成式方法,生成与掩体图像相关的含密字符画,并利用含密字符画中特定字符对秘密信息进行表达,同时无需额外参数的嵌入,因而不涉及对掩体图像的修改,从而不会遗留修改痕迹;此外,该策略对像素非显著比特位不敏感,可抵抗一定程度的噪声攻击或JPEG压缩;同时,伪装与提取阶段完全由密钥驱动,对密钥依赖性高,从而提供更高的安全性。
2 所提方法
该方法利用字符1代表白色像素点,字符0代表黑色像素点,根据掩体图像生成对应的含密半色调字符画,并在生成过程中将代表秘密比特的字符放置在含密半色调字符画指定位置。即首先利用密钥生成随机坐标序列来决定秘密信息比特在掩体图像中的嵌密位置;对于嵌密和非嵌密位置,分别放置与密钥和位置信息相关联或与掩体放置位置相近的字符对秘密比特进行表达和掩盖,并将字符放置后与掩体图像对应位置像素点的误差向周围扩散。在提取时,首先利用密钥生成随机坐标序列,之后从含密半色调字符画中截取对应位置字符,并通过密钥与坐标位置提取所隐藏的秘密比特。该方法的处理流程框图如图1所示,并对该策略进行详细说明。
图1 字符画生成伪装与提取策略流程框图
2.1 基于字符画的生成式伪装策略
这里约定秘密比特序列B=(bi)l,T=(ti,j)m0×n0为灰度掩体图像,k0,k1为两个密钥参数。设字符的大小为m1×n1,初始化空白字符画M=(mi,j=0)m2×n2,其中m2×n2满足的约束见式1,即可将M划分为m0n0个m1×n1的正方形网格用于放置字符。
m2=m0·m1,n2=n0·n1
(1)
(2)
(3)
之后,通过密钥k0生成包含l个两两不等m0×n0范围内的随机坐标序列H=(hi)l,hi=(xi,yi)。
bcur=(bi+ri·x+ri·y)mod2
(4)
其中,ri是由k1生成的随机整数序列R=(ri)l中第i个元素。这里之所以将bi与嵌密位置信息相关联是为了使bi在不同位置对应不同的2值比特,以避免bi和bcur存在固定的一对一映射关系,从而提高安全性。
(5)
(6)
在上述过程中,还需要由密钥k0和k1生成随机嵌密位置序列H=(hi)l和随机整数序列R=(ri)l。为保证生成的H,R具备密钥微小变化时的敏感性,H,R均由logistic混沌映射生成。式7给出了logistic混沌映射的具体迭代过程。
x=μx(1-x)
(7)
其中,x∈(0,1)为迭代参数;μ∈(3.569 945 6,4]为系统参数。将x,μ代入式7迭代生成新的x作为输出的随机数。
算法1:随机嵌密位置序列H=(hi)l的生成算法。
输入:密钥k0=(xinit,μinit),序列长度l,掩体图像分辨率m0×n0;
输出:随机嵌密位置序列H=(hi)l。
(1)初始化H=φ,v=xinit,i=0;
(2)将v,μinit代入式7生成新的v,并将v代入式8生成随机位置(x,y);
(8)
(3)重复执行步骤2,直至(x,y)∉H,将(x,y)添加至H中,令i=i+1;
(4)重复执行步骤2和步骤3,直至i=l;
(5)对H按光栅扫描顺序进行重新排列,将排序后的H作为最终输出的H。
算法2:随机整数序列R=(ri)l的生成算法。
输出:随机整数序列R=(ri)l。
ri=⎣v×1010」
(9)
(3)重复执行步骤2,直至i=l。
(10)
(11)
2.2 基于字符画的生成式恢复策略
之后遍历含密位置序列H=(hi)l,对于∀hi∈H,在M中以(xi·m1,yi·n1)为左上角起点,截取一个分辨率为m1×n1的矩阵小块P,计算P的均值来判断P所代表的字符bcur。
最后按式12将bcur解码为秘密比特bi,并将bi添加至B中。
bi=(bcur-ri·xi-ri·yi)mod2
(12)
重复执行上述流程,直至H=(hi)l遍历完毕。
3 所提方法的完整步骤
结合第1节的工作,以下给出完整的基于字符画的生成式伪装和提取策略,分别如算法3和算法4所示。
算法3:基于字符画的生成式伪装策略。
输入:秘密比特序列B=(bi)l,掩体图像T=(ti,j)m0×n0和初始密钥k0=(xinit,μinit);
输出:含密字符画图像M=(mi,j)m2×n2。
(3)按算法1生成含密位置序列H=(hi)l;
(4)按算法2生成随机整数序列R=(ri)l;
算法4:基于字符画的生成式伪装提取策略。
输入:含密字符画图像M=(mi,j)m2×n2,初始密钥k0=(xinit,μinit);
输出:秘密信息B=(bi)l。
(2)按算法1生成含密位置序列H=(hi)l;
(3)按算法2生成随机整数序列R=(ri)l;
(4)初始化i=0,B=φ;
(5)读取hi=(xi,yi)∈H;
(6)在M中以(xi·m1,yi·n1)为左上角起点,截取分辨率为m1×n1的矩阵小块P,并读取P所代表的字符bcur;
(7)按式12将bcur解扰动为秘密比特bi,将bi添加至B中,令i=i+1;
(8)重复执行步骤5~步骤7,直至i=l。
算法3在嵌入时仅通过密钥决定嵌密位置,通过生成式方法产生有意义含密字符画并利用指定字符来表达秘密信息生成含密掩体,所提方法不涉及任何参数嵌入,不会遗留修改痕迹。算法4在提取时,只需读取对应位置字符,并将其解扰动以提取秘密比特。所提方法对图像非显著比特位不敏感,具备良好的鲁棒性,可抵抗一定程度的噪声攻击和低质量JPEG压缩。此外,秘密比特的随机映射和秘密比特的嵌密位置以及随机扰动均由密钥k0和k1生成,且k1由初始密钥k0映射而得,使得文中方法对密钥具备完全的依赖性。
4 实 验
实验测试环境为Windows 10操作系统,CPU为Intel(R) Core(TM) i5-6600,主频为3.31 GHz,内存为8.00 GB,实验编程语言为JAVA jdk 1.8.0_65。
选取两张64×64灰度图像camera和cameraman作为掩体图像,如图2(a)和图2(b)所示;选取1首总共20个汉字的古诗作为秘密信息,如图2(c)所示。
图2 实验测试图像
实验采用峰值信噪比(peak signal to noise ratio,PSNR)来验证含密马赛克图像与攻击后马赛克图像之间的差异度,其计算公式如下:
(13)
其中,MSE(mean square error)为含密马赛克图像与攻击后马赛克图像的每个图像的均值之间的均方误差,计算如下:
(14)
使用误码率(error rate,ER)衡量恢复的字节序列与原字节序列之间的差异,其计算式如下:
(15)
其中,lerror是发生错误的字节数量;ltotal是总字节数。
以下分别通过正确性实验、密钥依赖性实验和抗攻击实验对所提策略的性能进行检验。
4.1 正确性实验
为验证所提策略的正确性,以图2(c)为秘密信息,图2(a)和图2(b)为掩体图像,按不同密钥参数由算法3生成含密字符画图像,然后按算法4从含密字符画图像中提取秘密信息。表1给出了实验参数,图3和图4分别给出了生成的含密字符画结果和与之对应的恢复信息。
由表1、图3和图4可看出,所提方法可生成高质量的含密字符画图像,并能通过正确密钥提取秘密信息,且提取的秘密信息相对于原秘密信息的ER为0,说明秘密信息完整恢复。
编号掩体图像实验参数xinitμinit马赛克图像恢复信息ER1图2(a)0.758221533.85463216图3(a)图4(a)02图2(a)0.758221543.85463215图3(b)图4(b)03图2(b)0.258221543.95463215图3(c)图4(c)04图2(b)0.958221543.65463216图3(d)图4(d)0
图4 正确性实验恢复信息
4.2 密钥敏感性实验
为验证所提策略对密钥的依赖性,对表1第1~4组实验的密钥参数进行修改,然后按算法4从含密字符画图像(图3(a)~3(d))中恢复出秘密信息。
表2给出了密钥依赖性实验数据,其中“-”表示未修改,对应的恢复信息如图5所示。
图5 密钥敏感性实验恢复信息
表2 修改密钥参数的密钥敏感性验证实验参数
从表2和图5可看出,只有提供正确的密钥才能获取正确的秘密信息,而错误的密钥参数将无法提取秘密信息且误码率高达100%。
4.3 抗攻击实验
为验证所提方法的抗攻击性能,分别对正确性实验中生成的含密字符画图像进行下列攻击:①JPEG压缩:对选中的含密字符画图像进行不同质量因子的JPEG压缩;②加噪攻击:对选中的含密字符画图像添加不同强度的随机噪声。
图6 抗攻击实验恢复信息
图7 抗攻击实验中遭受攻击字符画
编号字符画图像遭受攻击字符画攻击参数秘密信息攻击方式攻击占比或质量因子原始恢复PSNRER1图3(a)图7(a)JPEG压缩50图2(c)图6(a)27.5102图3(c)图7(b)JPEG压缩80图2(c)图6(b)35.0103图3(b)图7(c)随机噪声8%图2(c)图6(c)14.1404图3(d)图7(d)随机噪声20%图2(c)图6(d)10.110
以下对图3(a)和图3(c)进行不同质量因子的JPEG压缩,对图3(b)和图3(d)添加不同强度的随机噪声,表3给出了抗攻击实验的实验参数,图6和图7分别给出了抗攻击实验中恢复信息和遭受攻击字符画图像。
由图6、图7和表3中的实验数据可以看出,含密字符画图像尽管遭受了不同程度的JPEG压缩和随机噪声攻击,按算法4提取的恢复信息的误码率依然为0,表明所提方法具备良好的抗JPEG压缩以及随机噪声性能,并且能有效提取秘密信息。
5 结束语
基于马赛克拼图的信息隐藏由于需借助修改式嵌入的方式嵌入额外信息,因此在难以抵抗密写分析的同时鲁棒性较低。针对上述问题,提出了一种基于字符画的生成式图像信息隐藏方法,借助字符生成掩体图像的同时,表达秘密信息。该方法首先将秘密信息转化成秘密信息序列,利用密钥生成随机整数序列来决定秘密信息比特在掩体图像中的嵌密位置;对于嵌密和非嵌密位置,分别放置与密钥和位置信息相关联或与掩体放置位置相近的字符画来对秘密比特进行表达和掩盖,并将字符画放置后的误差向周围扩散。在恢复阶段,利用密钥确定秘密比特嵌入位置,并利用密钥和位置信息提取对应嵌密位置的秘密比特。与传统马赛克拼图的信息隐藏方法相比,该策略仅通过随机放置位置的字符对秘密信息表达而不涉及对字符的修改,在嵌密和提取的过程中完全依赖密钥,具备较高的安全性。