孙树亮, 郭永宁
(福建师范大学福清分校电子与信息工程学院,福建 福清 350300)
基于2k修正和Canny边缘检测的图像隐写
孙树亮, 郭永宁
(福建师范大学福清分校电子与信息工程学院,福建 福清 350300)
针对信息安全,提出基于Canny边缘检测和2k修正的信息隐藏算法。秘密信息仅仅隐藏在边界像素上,首先利用Canny边缘检测算子检测载体图像的边缘,然后利用伪随机数序列对边缘像素进行重排。为了增强秘密信息的安全性,采用霍夫曼编码把秘密信息变成二进制位流。每个像素隐藏的位数由其灰度值确定。最后,为了增强隐写图像的视觉效果,采用2k修正法进一步减小隐写图像和载体图像之间的误差。实验证明提出的方法比LSB-2和文献[12]的方法更好。
嵌入位长;霍夫曼表;Canny边缘检测;2k修正
随着科技的进步,尤其是通信与网络技术的发展,信息的传输越来越方便与快捷。当科技给人们带来便利的同时,也带来了安全问题。目前,信息安全技术主要分为两大类:密码学与隐写术。密码学是通过加密技术将信息变成密文,使非法用户不能读取信息[1]。由于密码学并不隐藏“正在通信”这个事实,因此攻击者即使不能够破解密码,也可能对密文进行破坏,使合法的接收者也不能正确解密出信息。隐写术起源于古希腊,它是将秘密信息隐藏在文本、图像、声音、视频等数字媒体信号中[2]。在密码学中,任何人都能够注意到双方正在进行秘密通信,而在隐写术中,非法用户根本不会怀疑公共载体下隐藏有秘密消息。
隐写术有三个主要特征:嵌入容量、鲁棒性和不可感知性。这三个特性相互影响,形成魔幻三角,如图1所示[3]。
图1 隐写术的三个主要特征
隐写术主要分为两大类,一类是基于空间域(图像域),另一类是基于变换域。空间域隐写的主要方法有最低有效位替代隐写(least significant bit replacement,LSB)[4]和位平面分割隐写(bit-plane complexity segmentation,BPCS)[5]。变换域隐写的主要方法有基于离散傅里叶隐写(discrete Fourier transform,DFT),基于离散余弦变换隐写(discrete cosine transform,DCT) 和基于离散小波变换隐写(discrete wavelet transform,DWT)。
据研究表明,对于相同的微小变化,人眼的视觉系统对平滑区域比对边缘区域更敏感[4]。同时,边缘区域的像素也比平滑区域的像素表现出更多随机的特性。因此在边缘区域隐藏信息凭肉眼很难看出载体有何区别。在本文中,秘密信息将被隐藏在边缘区域,平滑区域保持不变。
Canny边缘检测是最著名和最有效的边缘检测算法,是Canny[6]在1986年提出的。该算法有三大优点:检测准确、定位准确和检测的唯一性[7]。为了增加安全性,对边缘像素利用伪随机数(pseudo random noise generation,PRNG)[8]进行重排,打乱像素的原有次序。
2.1 霍夫曼编码
为了增加秘密信息的安全性,在把信息嵌入载体之前,首先需要对信息进行编码。本文采用的是霍夫曼编码。霍夫曼编码是Huffman[9]于1952年提出的,主要用于无损压缩。进行霍夫曼编码首先要构造霍夫曼表。该表先将信号按照概率进行排序,然后把概率最小的两个信号的概率相加组成一个新的信号。新的组合信号与原信号重新排序,最后将概率最小的两个信号相加,组成一个新的信号,再与原信号进行排序,这样重复下去,一直到最后只剩下两个信号为止。对最后两个信号分别赋值为0和1,倒推回去,就构造成了霍夫曼表[10]。
根据霍夫曼表,像素的灰度值被映射成一组二进制序列。因此,一幅大小为M×N的二维图像被映射成一维长度小于M×N的位流。由于编码和解码需要有相同的霍夫曼表,因此,霍夫曼表也要隐藏在载体里,传送给接收方。
2.2 嵌入位长L
信息隐藏的基本思想是用秘密信息的最高有效位(most significant bits,MSB)去替换载体信息的最低有效位(least significant bits,LSB),前提条件是隐藏信息后不能明显改变载体本身的视觉效果。随像素的灰度值变大,能够隐藏的秘密信息位数越多,反之,灰度值越小,隐藏的秘密信息位数也越少。因此对载体图像的不同像素值,能够嵌入的秘密信息位数也不相同。位长 L决定了每一个载体的边缘像素(Ei)能够嵌入秘密信息的位数,参数L由下面条件决定:
如果 Ei≥ 27L =4
如果 26≤Ei< 27L =3
如果 25≤Ei< 26L =2
其他 L =1
不同的L值也要作为秘钥传递给接收方。
2.3 2k修正法
隐藏秘密信息以后的载体图像称为隐写图像。为了进一步增强隐写图像的视觉效果,可以采用数学的方法。在很多情况下,载体图像和隐写图像之间存在误差。为了克服这些差别获得更好的视觉效果,可以采用2k修正法[11]。
2k修正法的处理过程如下:
已知:载体像素值(actual pixel value,APV);
隐写像素值(stego pixel value,SPV);
误差值(error value,EV);k为替换的
二进制位数。
则:EV = |APV–SPV|
如果 (SPV–APV>2k–1)&(SPV–2k≥0)
新隐写像素= SPV–2k
如果 (SPV–APV<–2k–1)&(SPV+2k≤255)
新隐写像素= SPV+2k
否则 新隐写像素= SPV
举例:
APV 198 = 11000110,秘密信息的二进制位流:001001010…(2),k =3;
SPV 193 = 11000001
∵ EV= 193–198 =–5 < –2(3–1)= –4
SPV+ 2k=201 < 255
∴ 新隐写像素值 = SPV +23= 193+8
= 201 (11001001)
经过 2k修正以后,新的隐写像素值更接近原始APV,同时不会影响到隐藏的秘密数据。
数据嵌入算法如图2所示。
图2 数据隐藏算法框图
算法过程如下:
(1) 读取载体图像;
(2) 读取秘密信息并构建霍夫曼表;
(3) 利用霍夫曼表对秘密信息进行编码获取二进制位流;
(4) 利用Canny边缘检测算法检测载体的边缘;
(5) 采用伪随机序列对检测的边缘像素重新排列;
(6) 根据边缘像素值的大小 Ei确定所嵌入的位长L;
(7) 把二进制位流、不同的位长L和霍夫曼表隐藏到边缘像素中;
(8) 利用2k修正的方法获得更好的视觉效果;
(9) 获得隐写图像。
信息提取的过程是上述过程的逆过程,这里不再详细描述。
本文的实验是在Windows 7下用MATLAB 10实现的。为了衡量提出的算法,采用峰值信噪比(peak signal-to-noise ratio,PSNR)和隐写容量作为参数。
为了计算 PSNR,首先计算均方误差(mean squared error,MSE):
I是载体图像,S是隐写图像,M和N分别是载体图像的长和宽。
嵌入容量是衡量载体图像能够隐藏秘密信息大小的能力。
为了衡量本文算法的优劣性,将本文提出的方法与LSB-2和文献[12]的方法进行比较。载体图像的大小是 512×512的灰度图像,秘密信息是128×128的灰度图像。
图3显示的是对于不同的载体图像,用Canny边缘检测算子检测出的边缘图像。高斯滤波器被设为1.5;两个阈值分别取为5和40。
图3 用Canny算子检测出的边缘图像
由于秘密信息仅仅隐藏在边界像素上,因此载体容量相对较小。由表1可见,对于三种方法,本文所提出的方法在嵌入容量和 PSNR上都具有更好的优越性。
表1 不同算法的Capacity和PSNR的比较
图 4显示了隐写图像、相应的直方图图像和提取出的秘密图像。由于嵌入算法和提取算法是逆过程,并没有改变原始的秘密图像,隐藏提取出的秘密图像与原始的秘密图像是一致的。
图4 隐写图像和提取的秘密图像
由于人类视觉对平滑区域比对边缘区域的微小改变更为敏感,因此隐藏秘密信息仅仅被隐藏在载体的边缘像素区域。为了增强秘密信息的安全性,构造了霍夫曼表,采用了霍夫曼编码对秘密信息进行编码。利用Canny边缘检测算子检测载体的边缘,并对边缘像素采用伪随机数进行重排。在文中,不同的像素根据其灰度值的大小隐藏的秘密信息位数不同,像素值越大,隐藏的位数越多。为了获得更好的视觉效果,减少载体图像和隐写图像之间的差异,采用了2k修正法。经实验证明,本文方法具有更好的隐写能力和PSNR值。
[1]Schneier B. Applied cryptography: protocols, algorithm and source code in C [M]. 2nd ed. John Wiley & Sons Press, 1996: 30-39.
[2]Channalli S, Jadhav A. Steganography an art of hiding data [J]. International Journal on Computer Science and Engineering, 2009, 1(3): 137-141.
[3]Chan C K, Cheng L M. Hiding data in images by simple LSB substitution [J]. Pattern Recognition, 2004, 37(3): 469-474.
[4]Tovee M J. An introduction to the visual system [M]. Cambridge University Press, 2008: 73-78.
[5]Kawaguchi E, Eason R O. Principle and applications of BPCS-steganography [C]//Proceedings of SPIE: Multimedia Systems and Applications, 1998: 464-473.
[6]Canny J. A computational approach to edge detection [J]. IEEE Trans. Pattern Analysis and Machine Intelligence, 1986, 8(6): 679-698.
[7]Bassil Y. Image steganography based on a parameterized Canny edge detection algorithm [J]. International Journal of Computer Applications, 2012, 60(4): 35-40.
[8]赵跃华, 房军祥. 一种改进的伪随机数算法的研究[J].信息网络安全, 2011, (5): 44-46.
[9]Huffman D A. A method for the construction of minimum-redundancy codes [C]//Proceedings of the I.R.E., 1952: 1098-1102.
[10]Rubab S, Younus M. Improved image steganography technique for colored images using Huffman encoding with symlet wavelets [J]. International Journal of Computer Science, 2012, 9(1): 194-196.
[11]Kaur A, Kaur S. Image steganography based on hybrid edge detection and 2k correction method [J]. International Journal of Engineering and Innovative Technology, 2012, 1(2): 167-170.
[12]Yu J G, Yoon E J, Shin S H, et al. A new image steganography based on 2k correction and edgedetection [C]//Fifth International Conference on Information Technology: New Generations, 2008: 563-568.
Image Steganography Based on 2kCorrection and Canny Edge Detection
Sun Shuliang, Guo Yongning
(Department of Electronic and Information Engineering, Fuqing Branch of Fujian Normal University, Fuqing Fujian 350300, China)
A new algorithm is proposed which is based on Canny edge detector and 2kcorrection. Firstly, Canny edge detector is applied to detect the edge of cover image and only edge pixels are selected for embedding payload. PRNG is used to randomize the edge pixels in order to enhance security. Then Huffman encoding is practiced to code the secret data before embedded according to Huffman table. Calculate coherent bit length L on the base of relevant edge pixels. Finally, the method of 2kcorrection is applied to achieve better imperceptibility in stego image. The experiment shows that the proposed method is better in PSNR and capacity than LSB-2 and scheme [12].
coherent bit length; Huffman table; Canny edge detector; 2kcorrection
TP 391.45
A
2095-302X(2015)01-0052-04
2014-05-28;定稿日期:2014-07-12
国家自然科学基金资助项目(61473329);福建省教育厅科技资助项目(JA12351,JB14132);福建省教育厅省属高校科研专项资助项目(JK2013062);福建师范大学科研创新基金资助项目(KY2014029,KY2014028)
孙树亮(1982–),男,安徽蚌埠人,副教授,博士。主要研究方向为图像处理、信息隐藏。E-mail:tjussl_07@126.com
郭永宁(1966–),男,福建莆田人,教授,硕士。主要研究方向为计算机应用、信息隐藏。E-mail:guoyn@163.com