杨秋翔,陈够喜
(中北大学 电子与计算机科学技术学院 ,山西 太原 030051)
信息隐藏技术的主要特性有鲁棒性、不可检测性、透明性、安全性以及自恢复性等.利用小波变换进行图像处理时,根据人眼不敏感图像高频成份的特性,将图像的部分高频分量用于嵌入秘密信息,实现信息在图像中的隐蔽传送,以满足信息保密的需要,同时保持了良好的视觉效果.文献 [1]对此做了较好的研究,提出了基于整数小波的间隙和直方图的信息隐藏算法,提高了信息隐藏的容量,又有较好的视觉效果.本文通过实验分析和总结,提出双阀值嵌入技术,并改进了隐藏算法,进一步提高了信息隐藏容量和算法安全性.本文选择了 JPEG2000的 CDF(2,2).
设五元组 H=(C,M,K,DK,EK),C是所有的 COVER的集合,M是秘密信息的集合,并且|C|>|M|,K是密钥的集合.当 ∀m∈ M,∀c∈ C和 ∀k∈ K时,映射 EK:C×M×K→C和 DK:C×K→M可导出 DK(EK(c,m,k),k)=m成立.在本文中主要是对∀c∈C和∀m∈M进行处理和分析.
基于五元组 H=(C,M,K,DK,EK)中 C小波变换得到三个高频子带 HL,L H和 HH.高频子带是图像的细节描写.HVS理论指出:人眼无法觉察这三个高频子带的细微变化,故可以将信息嵌入到高频子带的系数中.本文将在这 3个高频子带 HL,L H和 H H上嵌入数据[2].
经过小波变换后的图像的直方图成为小波直方图,横坐标对应的是小波系数的值,而纵坐标对应的是小波系数出现的频度.对于一般图像而言,它的整数小波的高频系数近似服从拉普拉斯分布,系数较小,而从小波直方图看来,数据集中在 0附近,两侧较小,中间较大.
设定阀值 T1和 T2(T1<T2),小波系数T1对应的频度为Zi.在区间 [T1,T2]内,按照一定的顺序对小波系数进行扫描,依据频度的大小对小波系数进行排序,得到系数频度序列:T1,T2,…,Tn-1,Tn(n<N),其中T1频度最高,Ti频度最低.对于系数频度序列,设其对应的频度序列为 Z1,Z2,…,Zn-1,Zn(n<N),其中 Z1最大,是 T1的频度值[3,4].
N的取值范围:根据小波直方图系数的分布特性,对于一般图像,取 T1<0,T2>0,N=
设嵌入的 bit位为 S,数据嵌入原则是[5]
式中:Qmax为嵌入数据的最大容量.
下面以一实例说明嵌入数据的基本原理.
为了论述方便,设 T1=-2,T2=2.图 1为某一高频小波子带的原始系数,图 2为其对应的小波直方图.
在嵌入数据之前,先对图 1中的数据进行预处理.如图 3所示,将等于 T1-1的值进行 -1处理,虚线框内的数据表示预处理后的转化数据.第1次预处理后的直方图如图 4所示.在区间 [T1,T2]内,按频度从大到小依次排序形成系数序列(系数的频度若相同,按系数从小到大排序),与其相对应的频度排序形成频度序列.系数序列:0,-1,1;频度序列:5,4,4.数据嵌入最大容量为 Qmax=4+4=8.
假设隐藏信息 1101101.为了保证原始图像的稳定,嵌入数据采用间隔嵌入.首先在系数“-1”上嵌入隐藏数据.依据数据嵌入原则,得到如图 5和图 6所示的结果,实线框内的数据表示附有秘密信息.图 7和图 8为第2次预处理后的结果,虚线圆框内的数据表示第2次预处理后的数据.
第2次预处理后,在系数“1”上再依次嵌入数据.第1次已嵌入了 1101四个数据,第2次将嵌入剩余的 101.图 9和图 10所示为第2次嵌入数据后的处理结果,实线圆框内的数据表示第2次嵌入后的数据.图 11为数据嵌入与提取前后的小波直方图对比.
假设隐藏数据的 bit为 M,若 D> Qmax时 ,则调整阀值 T1和 T2[6,8].
依据上述双阀值嵌入数据的基本工作原理,嵌入数据的算法如下:
1)根据隐藏数据 D的大小,确定阀值 T1和 T2,使得位于区间 [T1,T2]内的小波系数能够嵌入全部的秘密数据.
2)根据小波直方图,对小波系数进行频度排序,得到由大到小的系数序列T1,T2,…,Ti-1,Ti.
3)根据小波直方图,得到系数的频度序列Z1,Z2,… ,Zi-1,Zi.
4)嵌入前的预处理.在小波直方图中,系数T2的左侧系数若与T2-1相等,则用T2-1代替.
5)从 Ti开始,嵌入 Zi个数据.用 Ti=Ti±S代替全部的系数 Ti,i的初始值为 2.
6)M=M-Zi,若 M>0,i=i+1,返回 4)继续执行;若 M≤0,则停止.
嵌入数据的提取算法:
提取嵌入数据的过程与嵌入过程顺序可逆.
1)从 Ti开始,嵌入Zi个数据.用 Ti=Ti±S代替全部的系数Ti,i的初始为2.此时,还原系数的方法与嵌入时相反,负系数加 1,正系数减 1.
2)M=M-Zi,若 M>0,i=i+1,返回 1)继续执行;若 M≤0,则停止.
对于特别重要的场合,在嵌入数据前的预处理的数据个数应完全记录.在提取数据时,可以准确还原原始图像.
对原始图像进行小波变换,得到高频子带.高频子带的系数均为整数,而且从小波变换后对应的直方图的数据分布来看,两侧数值小,中间数值大.改变两侧较小的数值,对于小波系数的改变变化较小,所以将在中间较大的数值上嵌入数据.
从双阀值的变化、嵌入方法和安全性等方面进行实验和分析,采用 lena(512×512×8)灰度图像.
根据实际嵌入数据的大小,确定适当的阀值 T1和 T2.从图 12的阀值变化曲线图中可以看出,T=|T1-T2|的变化对嵌入容量的影响.随着 T的变化,视觉效果也变化,所以要选取合适的阀值 T1和 T2.
在嵌入的容量上,文献 [1]中提出的方法是当前各种无损数据隐藏方法中比较好的,但其高容量是通过多次嵌入的方式实现的.由于其采用了一维小波变换,所以图像中的斜边效果不太理想,而且每次最多只能嵌入 0.5 bpp的数据容量.利用本文的方法在嵌入时,嵌入的容量比当前文献方法效果好.不过,当嵌入的数据容量超过一定的数量时,图像将会严重失真.图 13是利用本文的方法和文献 [1]中的方法进行比较.
图14是采用文献 [9]中提出的评价方法进行实验的.图中的 m表示在图像中具有强相关性的像素数量.当 m值增大时,嵌入率(bit/pixel)降低,视觉效果变差.所以,针对嵌入的载体图像必须有所选择,才能增加嵌入容量,并且提高视觉效果.
本文在提升整数小波变换后的高频子带中嵌入了秘密的数据信息,采用了基于双阀值的隐藏算法,极大地提高了嵌入数据的容量,并且增加了信息的安全性,是一种可靠的无损数据隐藏手段.通过实验和数据比较分析,表明其效果比文献 [1]中提到的方法要好,而且解决了小波反变换时,图像灰度溢出的问题.
[1]Ker A D.A capacity result for batch steganography[J].IEEE Signal Processing Letters,2007,14(8):525-528.
[2]Hedieh Sajedi,Mansour Jamzad.Secure steganography based on embedding capacity[J].Int.J.Inf.Secur.,2009,8:433-445.
[3]王亚美,赖惠成.基于间隔控制的信息隐藏[J].计算机工程,2009,35(14):168-171.Wang Yamei,Lai Huicheng.Information hiding algorithm based on distance control[J].Computer Engineering,2009,35(14):168-171.(in Chinese)
[4]Cachin C.An infoemation theoretic model for steganography[C].Information Hiding 2nd International Workshop.Lecture Notes in Computer Science,1998,1525:306-318.
[5]Cayre C,Fontaine C,Furon T.Watermarking security:Theory and practice[J].IEEE Transactions on Signal Processing,2005,53(10):3976-3987.
[6]Zhou Jijun,Wang Ying,Niu Xinxi.Research of steganalysis onimage[J].Journal of Computer System Application,2005,5:47-50.
[7]孟妍妍,高宝建,强媛.二值文本图像信息隐藏分析 [J].计算机工程,2009,35(15):146-148.Meng Yanyan,Gao Baojian,Qiang Yuan.Steganalysis of binary text image[J].Computer Engineering,2009,35(15):146-148.(in Chinese)
[8]Ker A D.Steganalysis of embedding in two least-significant bits[J].IEEE Transitions on Information Forensics and Security,2007,1(2):46-54.
[9]Sallee P.Model-based methods for stegano graphy and steganalysis[J].Int.J.Image Graph,2008,1(5):167-190.