任志敏,曾文軍,張 良
(1.常州紡織服裝職業(yè)技術(shù)學(xué)院機電學(xué)院,江蘇 常州 213164;2.武進(jìn)區(qū)信息中心,江蘇 常州 213159)
隨著信息技術(shù)的不斷發(fā)展,數(shù)以千萬計的海量數(shù)據(jù)通過互聯(lián)網(wǎng)被下載、上傳、操作和交換,在給人們生產(chǎn)、生活帶來便利的同時,信息安全問題也越來越突出。傳統(tǒng)上,人們通過密碼保護(hù)對數(shù)據(jù)進(jìn)行打亂以改變其含義的方式實現(xiàn)信息安全傳輸,與密碼保護(hù)不同的是,信息隱藏是把數(shù)據(jù)隱藏在文本、音頻、圖片或視頻等文件中,使得除了發(fā)送者和接收者之外的任何人都看不到隱藏信息,通過隱藏數(shù)據(jù)的存在實現(xiàn)數(shù)據(jù)被保護(hù)的目的[1]。與信息隱藏相關(guān)的操作過程主要包括[2]:
1) 宿主文件(cover),用于嵌入隱藏信息的原始文件,若宿主文件是圖片,則稱為宿主圖片。
2) 隱寫文件(stego),嵌入了隱藏信息的輸出文件,若隱寫文件為圖片,則稱為隱寫圖片。
3) 隱藏信息(message),需要嵌入或傳輸?shù)臄?shù)據(jù)。
4) 數(shù)據(jù)嵌入過程(Embedding Processing),把隱藏數(shù)據(jù)嵌入到宿主文件的過程,生成隱寫文件stego。
5) 數(shù)據(jù)提取過程(Extraction Processing),把數(shù)據(jù)從隱寫文件提取的過程,獲取隱藏信息message。
評價一種信息隱藏方法優(yōu)劣的標(biāo)準(zhǔn)主要包括三個方面[3]:
1) 嵌入隱藏信息的數(shù)據(jù)量多少。
2) 在執(zhí)行了一系列的壓縮、旋轉(zhuǎn)、裁剪等操作后,隱藏信息是否仍舊未被破壞。
3) 隱寫文件的質(zhì)量,HVS(human visual system),即人眼對隱寫文件的感知。
邊緣是一副圖片的某一部分區(qū)別兩個區(qū)域的輪廓邊界。邊緣檢測是圖像處理和機器視覺及其重要的處理方式和手段,經(jīng)典的邊緣檢測算法有Sobel,Laplacian,Canny等。其中Canny邊緣檢測算法是由John F.Canny在1986年提出的,因其具有優(yōu)異的定位和檢測而廣受歡迎[5-7]。Canny邊緣檢測算法的典型步驟如下:
1) 消除噪聲,圖像首先通過高斯濾波器掩碼進(jìn)行平滑處理。將圖像分成與5×5高斯核大小相等的數(shù)據(jù)塊,并進(jìn)行卷積運算。
2) 確定每個像素的梯度大小和梯度方向。
3) 對梯度幅值進(jìn)行非極大值抑制,如果某個像素的梯度幅值大于梯度方向周邊像素的梯度幅值,標(biāo)記該像素點為邊緣。否則,標(biāo)記為非邊緣。
4) 通過雙閾值去除一些弱邊緣。
采用Canny邊緣檢測算法處理的圖片如圖1所示。
圖1 Canny邊緣檢測算法處理的圖片
圖1(a)為灰度圖,大小為256×256,總計65536個像素。圖1(b)為經(jīng)過Canny邊緣檢測算法處理的圖片,其中低閾值為50,高閾值為150,經(jīng)過計算,總計4554個邊緣像素。
基于Canny邊緣檢測算法的信息隱藏方法包括兩個部分[8],一是嵌入過程,二是提取過程。
隱藏信息的嵌入過程如圖2所示。
圖2 隱藏信息嵌入過程
圖2所示的信息嵌入過程一共分為3個階段。
1) 對灰度宿主圖片Ⅰ采用Canny算法進(jìn)行邊緣處理,從而獲得邊緣輪廓二值化圖片Ⅰ′。
2) 把圖片Ⅰ′分成若干個塊,每個塊包括n個像素點,并標(biāo)記為P1,P2,P3,……,Pn。其中P1的二進(jìn)制位存儲后面(n-1)個像素點的邊緣狀態(tài),若為邊緣標(biāo)記為1,否則標(biāo)記為0。比如設(shè)置n=3,則該塊有3個像素點,若P1和P3為邊緣,P2為非邊緣,則P1的LSB的最低兩位標(biāo)記為‘01’。對于像素點是否是邊緣由第一階段經(jīng)過Canny算子計算得來。考慮到P1是用來標(biāo)記后續(xù)像素點的邊緣狀態(tài),為了平衡整個隱寫圖片的質(zhì)量和嵌入的數(shù)據(jù)量,根據(jù)后續(xù)實驗結(jié)果,n的值宜采用3,4或5。
圖3 隱藏信息嵌入過程
隱藏信息的提取過程分為兩個階段。
實驗圖片選擇256×256的灰度圖片。評價隱寫圖片的質(zhì)量主要考慮兩個方面,一是PSNR(peak signal-to-noise ratio),PSNR即峰值信噪比,用于衡量宿主圖片與隱寫圖片之間的差異。二是HVS。PSNR的計算公式為:
其中MSE(Mean Square Error)表示隱寫圖片與宿主圖片的均方誤差。如宿主圖片的寬度用W表示,高度用H表示,則MSE的計算公式為:
圖4 基于Canny邊緣檢測的信息隱藏方法生成的隱寫圖片
圖4中n=2,把宿主圖片每2個像素分割成一塊。x=1,在非邊緣的像素點的嵌入1位,y=1,2,……,6,在邊緣像素點嵌入1位~6位。從圖4中可以看出,雖然在y=6的時候PSNR值有所下降,但是依舊保持了良好的HVS。
圖5展示了采用經(jīng)典的LSB算法嵌入隱藏信息后的隱藏圖片,為了比較兩種方法的優(yōu)劣性,在嵌入相同數(shù)據(jù)量的前提下,在對應(yīng)像素點嵌入1位~6位。對比兩種方法生成的隱寫圖片,可以看出:1) 在嵌入相同數(shù)據(jù)量的前期下,基于Canny邊緣檢測的信息隱藏方法生成的隱寫圖片的PSNR值高于經(jīng)典LSB算法生成的隱寫圖片,即與宿主圖片更接近。2) 從HVS的角度看,采用經(jīng)典LSB算法,嵌入1位~3位還是感覺不出與宿主圖片的差異,嵌入4位~6位是無法接受的,將會產(chǎn)生大量噪聲。
圖5 基于經(jīng)典的LSB信息隱藏方法生成的隱寫圖片
綜上所述,比起經(jīng)典的LSB信息隱藏算法,基于Canny邊緣檢測的信息隱藏方法在嵌入數(shù)據(jù)量規(guī)模,PSNR值,生成的隱寫圖片質(zhì)量等方面更優(yōu)。