孫樹亮, 郭永寧
(福建師范大學福清分校電子與信息工程學院,福建 福清 350300)
基于2k修正和Canny邊緣檢測的圖像隱寫
孫樹亮, 郭永寧
(福建師范大學福清分校電子與信息工程學院,福建 福清 350300)
針對信息安全,提出基于Canny邊緣檢測和2k修正的信息隱藏算法。秘密信息僅僅隱藏在邊界像素上,首先利用Canny邊緣檢測算子檢測載體圖像的邊緣,然后利用偽隨機數(shù)序列對邊緣像素進行重排。為了增強秘密信息的安全性,采用霍夫曼編碼把秘密信息變成二進制位流。每個像素隱藏的位數(shù)由其灰度值確定。最后,為了增強隱寫圖像的視覺效果,采用2k修正法進一步減小隱寫圖像和載體圖像之間的誤差。實驗證明提出的方法比LSB-2和文獻[12]的方法更好。
嵌入位長;霍夫曼表;Canny邊緣檢測;2k修正
隨著科技的進步,尤其是通信與網(wǎng)絡技術的發(fā)展,信息的傳輸越來越方便與快捷。當科技給人們帶來便利的同時,也帶來了安全問題。目前,信息安全技術主要分為兩大類:密碼學與隱寫術。密碼學是通過加密技術將信息變成密文,使非法用戶不能讀取信息[1]。由于密碼學并不隱藏“正在通信”這個事實,因此攻擊者即使不能夠破解密碼,也可能對密文進行破壞,使合法的接收者也不能正確解密出信息。隱寫術起源于古希臘,它是將秘密信息隱藏在文本、圖像、聲音、視頻等數(shù)字媒體信號中[2]。在密碼學中,任何人都能夠注意到雙方正在進行秘密通信,而在隱寫術中,非法用戶根本不會懷疑公共載體下隱藏有秘密消息。
隱寫術有三個主要特征:嵌入容量、魯棒性和不可感知性。這三個特性相互影響,形成魔幻三角,如圖1所示[3]。
圖1 隱寫術的三個主要特征
隱寫術主要分為兩大類,一類是基于空間域(圖像域),另一類是基于變換域??臻g域隱寫的主要方法有最低有效位替代隱寫(least significant bit replacement,LSB)[4]和位平面分割隱寫(bit-plane complexity segmentation,BPCS)[5]。變換域隱寫的主要方法有基于離散傅里葉隱寫(discrete Fourier transform,DFT),基于離散余弦變換隱寫(discrete cosine transform,DCT) 和基于離散小波變換隱寫(discrete wavelet transform,DWT)。
據(jù)研究表明,對于相同的微小變化,人眼的視覺系統(tǒng)對平滑區(qū)域比對邊緣區(qū)域更敏感[4]。同時,邊緣區(qū)域的像素也比平滑區(qū)域的像素表現(xiàn)出更多隨機的特性。因此在邊緣區(qū)域隱藏信息憑肉眼很難看出載體有何區(qū)別。在本文中,秘密信息將被隱藏在邊緣區(qū)域,平滑區(qū)域保持不變。
Canny邊緣檢測是最著名和最有效的邊緣檢測算法,是Canny[6]在1986年提出的。該算法有三大優(yōu)點:檢測準確、定位準確和檢測的唯一性[7]。為了增加安全性,對邊緣像素利用偽隨機數(shù)(pseudo random noise generation,PRNG)[8]進行重排,打亂像素的原有次序。
2.1 霍夫曼編碼
為了增加秘密信息的安全性,在把信息嵌入載體之前,首先需要對信息進行編碼。本文采用的是霍夫曼編碼。霍夫曼編碼是Huffman[9]于1952年提出的,主要用于無損壓縮。進行霍夫曼編碼首先要構造霍夫曼表。該表先將信號按照概率進行排序,然后把概率最小的兩個信號的概率相加組成一個新的信號。新的組合信號與原信號重新排序,最后將概率最小的兩個信號相加,組成一個新的信號,再與原信號進行排序,這樣重復下去,一直到最后只剩下兩個信號為止。對最后兩個信號分別賦值為0和1,倒推回去,就構造成了霍夫曼表[10]。
根據(jù)霍夫曼表,像素的灰度值被映射成一組二進制序列。因此,一幅大小為M×N的二維圖像被映射成一維長度小于M×N的位流。由于編碼和解碼需要有相同的霍夫曼表,因此,霍夫曼表也要隱藏在載體里,傳送給接收方。
2.2 嵌入位長L
信息隱藏的基本思想是用秘密信息的最高有效位(most significant bits,MSB)去替換載體信息的最低有效位(least significant bits,LSB),前提條件是隱藏信息后不能明顯改變載體本身的視覺效果。隨像素的灰度值變大,能夠隱藏的秘密信息位數(shù)越多,反之,灰度值越小,隱藏的秘密信息位數(shù)也越少。因此對載體圖像的不同像素值,能夠嵌入的秘密信息位數(shù)也不相同。位長 L決定了每一個載體的邊緣像素(Ei)能夠嵌入秘密信息的位數(shù),參數(shù)L由下面條件決定:
如果 Ei≥ 27L =4
如果 26≤Ei< 27L =3
如果 25≤Ei< 26L =2
其他 L =1
不同的L值也要作為秘鑰傳遞給接收方。
2.3 2k修正法
隱藏秘密信息以后的載體圖像稱為隱寫圖像。為了進一步增強隱寫圖像的視覺效果,可以采用數(shù)學的方法。在很多情況下,載體圖像和隱寫圖像之間存在誤差。為了克服這些差別獲得更好的視覺效果,可以采用2k修正法[11]。
2k修正法的處理過程如下:
已知:載體像素值(actual pixel value,APV);
隱寫像素值(stego pixel value,SPV);
誤差值(error value,EV);k為替換的
二進制位數(shù)。
則: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)
經(jīng)過 2k修正以后,新的隱寫像素值更接近原始APV,同時不會影響到隱藏的秘密數(shù)據(jù)。
數(shù)據(jù)嵌入算法如圖2所示。
圖2 數(shù)據(jù)隱藏算法框圖
算法過程如下:
(1) 讀取載體圖像;
(2) 讀取秘密信息并構建霍夫曼表;
(3) 利用霍夫曼表對秘密信息進行編碼獲取二進制位流;
(4) 利用Canny邊緣檢測算法檢測載體的邊緣;
(5) 采用偽隨機序列對檢測的邊緣像素重新排列;
(6) 根據(jù)邊緣像素值的大小 Ei確定所嵌入的位長L;
(7) 把二進制位流、不同的位長L和霍夫曼表隱藏到邊緣像素中;
(8) 利用2k修正的方法獲得更好的視覺效果;
(9) 獲得隱寫圖像。
信息提取的過程是上述過程的逆過程,這里不再詳細描述。
本文的實驗是在Windows 7下用MATLAB 10實現(xiàn)的。為了衡量提出的算法,采用峰值信噪比(peak signal-to-noise ratio,PSNR)和隱寫容量作為參數(shù)。
為了計算 PSNR,首先計算均方誤差(mean squared error,MSE):
I是載體圖像,S是隱寫圖像,M和N分別是載體圖像的長和寬。
嵌入容量是衡量載體圖像能夠隱藏秘密信息大小的能力。
為了衡量本文算法的優(yōu)劣性,將本文提出的方法與LSB-2和文獻[12]的方法進行比較。載體圖像的大小是 512×512的灰度圖像,秘密信息是128×128的灰度圖像。
圖3顯示的是對于不同的載體圖像,用Canny邊緣檢測算子檢測出的邊緣圖像。高斯濾波器被設為1.5;兩個閾值分別取為5和40。
圖3 用Canny算子檢測出的邊緣圖像
由于秘密信息僅僅隱藏在邊界像素上,因此載體容量相對較小。由表1可見,對于三種方法,本文所提出的方法在嵌入容量和 PSNR上都具有更好的優(yōu)越性。
表1 不同算法的Capacity和PSNR的比較
圖 4顯示了隱寫圖像、相應的直方圖圖像和提取出的秘密圖像。由于嵌入算法和提取算法是逆過程,并沒有改變原始的秘密圖像,隱藏提取出的秘密圖像與原始的秘密圖像是一致的。
圖4 隱寫圖像和提取的秘密圖像
由于人類視覺對平滑區(qū)域比對邊緣區(qū)域的微小改變更為敏感,因此隱藏秘密信息僅僅被隱藏在載體的邊緣像素區(qū)域。為了增強秘密信息的安全性,構造了霍夫曼表,采用了霍夫曼編碼對秘密信息進行編碼。利用Canny邊緣檢測算子檢測載體的邊緣,并對邊緣像素采用偽隨機數(shù)進行重排。在文中,不同的像素根據(jù)其灰度值的大小隱藏的秘密信息位數(shù)不同,像素值越大,隱藏的位數(shù)越多。為了獲得更好的視覺效果,減少載體圖像和隱寫圖像之間的差異,采用了2k修正法。經(jīng)實驗證明,本文方法具有更好的隱寫能力和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]趙躍華, 房軍祥. 一種改進的偽隨機數(shù)算法的研究[J].信息網(wǎng)絡安全, 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);福建省教育廳省屬高??蒲袑m椯Y助項目(JK2013062);福建師范大學科研創(chuàng)新基金資助項目(KY2014029,KY2014028)
孫樹亮(1982–),男,安徽蚌埠人,副教授,博士。主要研究方向為圖像處理、信息隱藏。E-mail:tjussl_07@126.com
郭永寧(1966–),男,福建莆田人,教授,碩士。主要研究方向為計算機應用、信息隱藏。E-mail:guoyn@163.com