一种新的二值图像特大容量信息隐藏算法
2018-07-25廖琪男甘宇健李国祥
柯 琦,廖琪男,甘宇健,李国祥
(广西财经学院 计算机系,广西 南宁 530003)
0 引 言
随着Internet和多媒体技术的发展,在信息安全领域中基于数字图像的信息隐藏技术已成为热点研究课题之一。在当今数字化信息时代,各种文件资料经常被扫描成数字化文档,以二值图像存储方式保存,并在网络上传输,例如各种证书、证明材料、合同票据或机关要文等。可见二值图像的信息隐藏保护是非常重要的。二值图像的像素点只有黑白两种像素值(即“0”、“1”两种像素值),若随意修改像素值可能使原图像产生非常大的变化,留下明显的修改痕迹。因此需对二值图像这一特性进行信息隐藏方法的研究。
目前用于二值图像的信息隐藏方法有分块嵌入法、文字特征修改法、游程修改法、结构微调法等[1-5],图像分块法相对其他方法容易实现,信息隐藏量大且隐蔽性好。文献[6]提出了一种基于分块的二值图像信息隐藏算法,算法将原图像置乱分块,对“可修改度”块最大的像素进行修改以嵌入信息。该算法的视觉透明度好但嵌入量小。文献[7-8]通过获取图像奇偶性进行分块,选取可嵌入的奇偶性矩阵块进行像素修改嵌入,使得奇偶性矩阵块所代表的信息和嵌入信息相一致,进而完成数据的嵌入和提取,但隐藏的信息容量均有限。文献[9]利用STC编码在载体块序列中选择一条信息嵌入的最佳修改路径,实现信息的嵌入。该算法能够减小载密图像的失真度,保持二值图像中L型的方差统计特性,抵抗相关的隐写检测,但计算量大。文献[10]根据黑白像素交接处将图像分成可用块和不可用块进行信息嵌入。文献[11]对图像分块后根据块中黑白像素的数量,自适应地嵌入秘密信息量。文献[12-14]的二值图像分块算法则出现了“黑白孤岛点”现象。
在上述研究基础上,文中提出一种新的二值图像特大容量信息隐藏算法,其容量、隐蔽性和稳定性等均优于以上分块算法,且不出现“黑白孤岛点”现象。
1 信息隐藏算法
文中算法对图像进行2×2分块,如果载体图像和信息图像的大小不是2的倍数,则对图像进行扩展,使之符合后再进行分块,但扩展的子块不做信息嵌入。假设符合2×2分块的载体图像记为C,其像素大小设为M×N;信息图像记为S,其像素大小为m×n。
1.1 算法思想
把载体图像、信息图像都划分成不重叠的2×2子块,用2×2的信息块沿着载体图像的黑白相间边缘(2×2黑白子块)填充来实现信息嵌入。为了避免在全黑或全白载体图像中嵌入信息,以及实现信息的盲提取,可嵌图像子块和嵌入信息子块必须是非全0和非全1。这就要求把信息子块中全0和全1的子块修改为非全0和非全1子块,这样便破坏了原始信息。但是,如果信息子块中全0和全1的子块不多,则提取出的错误像素信息就不影响信息的识别。该算法可行的基础就是对信息图像进行调制预处理,使信息子块出现全0和全1的概率最小,从而不足以影响提取信息的识别。
1.2 混沌系统
混沌系统是一种复杂的非线性动力系统,能产生具有遍历性、良好的伪随机性和对初值的敏感性等特征的混沌序列。为简便有效起见,采用一个简单且被广泛研究的Logistic一维混沌系统产生算法所需的混沌序列。Logistic系统定义为:
xn+1=μxn(1-xn)
(1)
其中,μ(0≤μ≤4)为分枝参数。当xn∈(0,1),且3.569 945 6<μ≤4时,Logistic映射处于混沌状态,此时生成的序列{xn,n=0,1,2…}是非周期、不收敛和不相关的,对x0非常敏感,因此具有良好的随机统计特性。
1.3 混沌调制信息图像
该算法应用Logistic混沌序列调制信息图像,使信息0、1像素随机分布,2×2子块中全0和全1的机会最低。
1.信息图像像素位置变换。
像素位置变换的目的是破坏像素之间的相关性。像素位置变换是指将原图像像素位置(i,j)通过某种方式转变到另一个新的位置(row,col)。为了获得好的置乱效果,利用Logistic混沌序列决定像素变换的新位置。
首先,将产生的混沌序列{Xi|i=1,2,…,m×n}重新升(降)序排序得到新序列{cXi|i=1,2,…,m×n},其密钥取key1。其次,用Xi的位置索引值替换cXi,构成索引序列{sXi|i=1,2,…,m×n}。最后,根据sX序列将原像素(i,j)按行列顺序变换到新位置(row,col):
(2)
其中,ceil(x)取不小于x的最近整数,即等于或大于x的最近整数。图像像素经过位置置乱后,图像将杂乱无章。
2.信息图像像素值变换。
像素值变换是指使对像素值扩散,对于二值图像就是使像素值0和1均等。该算法采用混沌序列作为XOR异或操作数来调制信息图像的像素值,具体方法如下:
(1)将混沌序列变换为1 bit无符号整数作为XOR操作数。
sY(i)=round(X(i)×10k)mod2
(3)
其中,i=1,2,…,m×n,k≥3。
(2)信息图像的像素值变换。
像素值Is(i,j)的新像素值Is(i,j)为:
Is(i,j)=Is(i,j)⊕sY((i-1)×n+j)
(4)
其中,i=1,2,…,m;j=1,2,…,n。
原图像的灰度直方图统计特性经过图像像素值变换操作后将会被彻底改变,0、1个数则会接近相等。
1.4 信息嵌入与提取
为提高载密图像的透视性和安全性,嵌入算法将由混沌序列随机选择嵌入块。
信息嵌入基本步骤如下:
(1)载体图像按2×2分块,记为CB(u,v)。
(5)
其中,u=1,2,…,M/2;v=1,2,…,N/2。
(2)把混沌调制后的信息图像按2×2不重叠分块为SB(u,v)。
(6)
其中,u=1,2,…,m/2;v=1,2,…,n/2。
(3)用key2产生混沌序列{Xi|i=1,2,…,M/2×N/2},并生成序列{sXi|i=1,2,…,M/2×N/2}。
(4)根据序列sXi选择载体图像子块CB(u,v),计算该子块和SB(u,v)子块的白色像素个数HC和HS。
(7)
(8)
(5)嵌入信息策略。
①若HC=0或4,不嵌入信息,CB(u,v)不变;
②若HC和HS都不为0和4,则CB(u,v)=SB(u,v);
③若HC不为0和4,HS为0或4,则需将信息块的其一像素修改为载体图像子块对应的像素值,即~SB(u,v)(i,j)=CB(u,v)(i,j),使HS=1或3。然后,CB(u,v)=SB(u,v)。这样既能减少载体图像像素的改变,又可保证盲提取的实现。
重复步骤4~5,直至信息嵌入完毕。
信息提取是嵌入的逆过程,但嵌入时修改的像素不可恢复,成为信息的错误像素。提取的信息经反混沌调制后得到失真3.1%像素的信息图像。
1.5 算法分析
(1)信息误码率。
信息图像按式2和式4混沌调制后,已成为0、1随机分布的置乱图像,对其2×2不重叠划分后,子块中全0或全1的概率仅为1/16,嵌入时被修改像素共为1/32,即误码像素为3.1%,这些错误像素反调制后不会影响对信息的识别[15]。基于频域信息隐藏算法提取的信息同样有失真问题。
(2)算法的容量和透视性。
载体图像按2×2不重叠分块,且每可用块嵌入信息最多,因此算法容量最大。
文中算法只在可嵌2×2子块内修改像素,不会像文献[12-14]那样出现“黑白孤岛点”现象;由于调制后的嵌入信息随机分布,载体图像可嵌子块像素分布也具有一定的随机性,加上嵌入算法采取了减少改变载体像素的策略,可用子块中每个像素可能被改变的概率应该低于0.5,即单位嵌入信息的修改量应低于0.5。因此该算法的透视性好。对于边缘复杂或模糊的二值载体图像,该算法的质量几乎不会下降。
2 实验结果与分析
实验平台采用Matlab2012b,Logistic混沌系统密钥key=(μ,x0)=(3.9,0.323 5),式3中k=3。
2.1 信息图像调制
实验图像分别选用Lena 512×512(图1(a))、Text 480×400(图2(a))和Logo 64×64(图1(b)),结果如表1所示。
表1 信息图像混沌调制效果
对于不同类型不同大小(足够多样本)的二值图像,调制后的二值信息图像的2×2分块中,全0或全1的子块为3.1%左右,实验结果和理论结果一致,混沌调制后的随机性很理想。
2.2 信息的嵌入与提取
(1)图形图像型二值图像信息隐藏实验。
对于图形图像型二值图像,可以嵌入作者信息、版权信息和秘密信息等。图1为本次实验情况,像素被修改率为0.477,提取信息的误码率为3.05%。为了与文献[10-11]的算法进行比较,本次实验载体图像周边子块不嵌信息。
图1 图像型二值图像信息隐藏效果
(2)文本型二值图像信息隐藏实验。
文本型二值图像可以隐藏一些与文本有关的重要数据或认证信息等。实验如图2所示,像素被修改率为0.467,提取信息的误码率为3.13%。结果表明,图2中提取信息的3.1%的失真度不影响对信息的识别,载密图像透视性好。
(3)与其他相关算法的性能比较。
本次实验采用图1(a)载体图像和图1(b)信息图像。为了与文献[10-11]的算法进行比较,本次实验载体图像周边子块不嵌信息。实验主要比较各算法的嵌入量和计算同一嵌入信息下的载体图像的单位信息改变量。结果如表2所示。
文中算法嵌入策略为每块嵌4位改4位,理论修改率低于0.5;文献[10]嵌入策略为嵌3位改4位或嵌2位改4位,其平均块嵌入量与具体载体图像有关,像素修改率最大;文献[11]嵌入策略为嵌1位改1位,理论修改率为0.5。这些值与表1中的实验结果是一致的。
3 结束语
提出一种对二值图像2×2分块和利用混沌序列置乱的二值图像特大容量信息隐藏算法,算法中的混沌序列也可选用更为安全的高维混沌系统序列。与其他2×2分块算法相比,该算法的载体像素改变少,隐藏容量大。特大的隐藏容量是以牺牲信息3.1%的失真为代价的,但并不影响对信息的识别。应用中可根据载体的容量、信息量和信息保真度要求选择方案。