胡四軍 朱婷婷
(1.南海艦隊司令部信息化處 湛江 524000)(2.海軍工程大學信息安全系 武漢 430033)
信息隱藏是保障內(nèi)容安全的重要技術,數(shù)字隱寫和隱寫分析作為信息隱藏的兩個分支越來越受到人們的重視。隱寫將秘密消息嵌入到數(shù)字媒體隱藏了“秘密消息正在通訊”這個事實。隱寫分析是隱寫的對抗手段,通過探測載體統(tǒng)計特征的變化判斷隱寫是否發(fā)生。
基于JPEG的隱寫算法由于其廣泛的實用性成為研究的 焦 點。F5[1]、Jsteg[2]、Jphs[3]、MB1[4]、OutGuess[5]、StegHide[6]等算法被相繼提出,試圖在保障安全性的同時提高嵌入容量。Jsteg是頻域的LSB方法,直接用秘密信息的比特流與載體圖像的DCT系數(shù)的最低有效位按順序進行替換,嵌入容量大但安全性很差;JPHS是Jsteg方法的的改進,選擇Blowfish生成隨機序列,選擇信息的嵌入位置,安全性略微提高;N.Proves在2001年提出了OutGuess隱寫方法,該方法通過產(chǎn)生隨機序列發(fā)生器選擇信息的嵌入位置,使用一半的DCT系數(shù)隱藏信息,另一半調(diào)整直方圖,安全性比JPHS有所提高;A.Westfeld在2001年提出了F5隱寫方法,該方法采用矩陣編碼,提高了嵌入容量和嵌入效率,可有效抵抗統(tǒng)計攻擊;Hetzl.S在2005年提出了基于圖論的StegHide隱寫方法;該方法對信息進行壓縮和加密,利用偽隨機數(shù)發(fā)生器在載體上找到一些的像素點,在這個像素集合中用圖論匹配算法找出需要做改變的像素對,交換它們的像素值,修改剩下的像素值使其包含隱藏信息,安全性進一步提高;P.Sallee在2005年提出了 MB1隱寫方法,該方法將嵌入率系數(shù)分為獨立同分布的兩部分,一部分作為嵌入信息的基準,另一部分用于嵌入信息,嵌入前對信息進行編碼,使其和基準部分的系數(shù)分布相同,將其嵌入到量化后的DCT系數(shù)中得非0的AC系數(shù)的LSB中,F(xiàn)ridrich[7]指出MB1是上述幾種方法中性能最好的隱寫方法,嵌入容量大,安全性較高。盡管設計上述幾個JPEG域的隱寫方法的出發(fā)點不同,但是它們存在兩個共同的問題:隱寫方法的檢測率隨著嵌入率的上升而提高,隱寫分析者通過Fridrich提出的裁剪方法估計原始圖像,從而提高隱寫分析的檢測率。
針對這兩個共同問題,K.Solanki在近期提出了一種安全性較高的主動隱寫方法YASS[7],它簡單而巧妙地解決這兩個問題,從而可以有效地對抗通用隱寫分析。然而,YASS在嵌入信息過程中重壓縮圖像,這帶來了原始信息的改變,需要錯碼來恢復原始信息。RA[8]糾錯碼的使用大大降低YASS的有效嵌入率。這使YASS算法秘密信息承載率遠低于其他隱寫算法,嚴重影響了YASS算法實用性。
針對于此,本文對傳統(tǒng)YASS算法進行了改進,將系數(shù)比例嵌入的思路引入算法設計,并通過非零系數(shù)所占比例實現(xiàn)嵌入,從而在保障安全性的同時大大提高了嵌入率。
YASS在嵌入前對秘密信息進行RA編碼,確定相關的嵌入?yún)?shù)(隨機塊的大小,質(zhì)量因子,子帶系數(shù)等),將秘密信息按QIM算法嵌入到各個塊中,按照設定的質(zhì)量因子保存,得到隱寫圖片。
隨機分塊和子塊的選擇是YASS算法的核心,分塊和選擇的方法如下:設DCT域的系數(shù)矩陣的大小為M×N,隨機塊的大小為B×B,且域系數(shù)分成r×c個隨機塊,為了不與生成jpg圖片的壓縮塊的大小相同,B不能為8的倍數(shù);在每一個隨機塊中選取一個或若干8×8子塊),選取方陣時,算法在一定的范圍內(nèi)隨機產(chǎn)生方陣左上角的第一個坐標(x,y),按照間隔8×8后再選擇另一個(如果存在)。
隨機分塊方法能夠讓攻擊者無法估計原始載體,一定程度上也讓攻擊者難于分析DCT系數(shù)之間的關系,提高算法的安全性。改進算法延用隨機分塊的方法。
冗余數(shù)據(jù)的嵌入減少了有效數(shù)據(jù)的嵌入量,RA編碼為恢復秘密信息引進了大量用于糾錯的冗余數(shù)據(jù)。如果秘密消息在嵌入過程中不發(fā)生改變,就能不使用糾錯碼,可以提高算法的有效嵌入率。比例嵌入法沒有涉及過多的圖像處理和破壞圖像的統(tǒng)計特性,嵌入過程中保持了信息的一致性。標記位的使用提高了算法的魯棒性。
保持載體統(tǒng)計性質(zhì)最好的方法是減少改變載體的系數(shù),甚至不改變載體的系數(shù)?;谶@個思想,利用塊內(nèi)系數(shù)的奇偶比例來嵌入信息,嵌入過程中沒有改變載體的統(tǒng)計特性。
設隨機塊中選取的子塊大小為2l×2l,子塊中系數(shù)值不為零的個數(shù)為l1,系數(shù)值為零的個數(shù)為l2,那么該子塊可以由l1/2l或者l1/2l的值嵌入的信息,用l1/2l嵌入信息。

必要的糾錯措施能夠糾正圖像在處理和傳輸過程中的錯誤,是估量算法魯棒性的重要手段。YASS的RA編碼糾錯能力強,冗余度高;比例嵌入法保持信息的一致性,沒必要應用很強的糾錯機制,而以二個標記位代替糾錯碼的功能。
根據(jù)算法嵌入過程的特點,兩個標記位被用來表示需要嵌入的秘密信息的最后2bits。設兩個標記位分別為f1和f2,f1和f2標記位的奇偶組合映射了秘密消息最后兩位的值。它們的對應方式如下所示:

這里k1和k2為整數(shù)。如果在傳輸過程中有一個非零系數(shù)的值變?yōu)?,那么相應的嵌入信息最后一位就發(fā)生了改變,此時可以使用標記位進行恢復。只要傳輸過程中零和非零系數(shù)轉(zhuǎn)換的個數(shù)小于3,就可以使用兩個標記位進行恢復。標記位一般選取每個隨機塊的前面兩個非零系數(shù)。如圖1所示,取隨塊的大小為5×5(實際隨機快的大小至少為9×9),子塊大小為4×4,即圖中虛線圍成的部分。
設隨機塊的大小為B×B,每個子塊的大小為2l×2l,其中,需要嵌入的信息為m,具體的嵌入步驟如下:
1)把m分成若干段長度為2l的子信息mi,按照從小到大的順序?qū)蚼i進行排序。

圖1 標記位的計算方法
2)對每一隨機塊,產(chǎn)生一個隨機坐標(x,y),計算非零系數(shù)比例來匹配信息mi;從左上角開始,行序為主搜索兩個非零標記位,修改標記位的奇偶性和mi最后兩位對應。
3)掃描系數(shù)矩陣中的每一個隨機塊,直到所有信息都嵌入完成,或者返回嵌入失敗的信息。
信息提取步驟是嵌入的逆過程,調(diào)換偽代碼的輸入輸出,做適當處理后可以得到原始消息。根據(jù)五元組輸入(flag,B,l,Embedcoef,posi)提 取 經(jīng) 過 處 理 后 的 消 息binM,然后按照posi[4]記錄的位置恢復原始消息。
選擇5000幅來自UCID和自拍的JPEG測試圖片,圖片的大小為512*384,質(zhì)量因子為75。實驗中YASS的參數(shù)固定[7],q=10、QFh=75。
嵌入?yún)?shù)B和l的選擇對嵌入容量有重要的影響。從5000幅圖片中隨機選取1500幅圖片來測試YASS和本文提出的算法的嵌入容量。在一定的嵌入量下,統(tǒng)計這1500幅圖片中嵌入成功的圖片數(shù)量,嵌入的圖片越多,嵌入容量越大。實驗結(jié)果如圖2所示。
如圖2所示,YASS算法的嵌入受參數(shù)影響很大,嵌入量越大和B越大,能夠嵌入的圖片越少;當嵌入量和分塊大小相同時,本文算法嵌入圖片數(shù)量明顯多于YASS,可選子塊的數(shù)量也超過YASS。嵌入的秘密消息為

圖2 圖片嵌入的數(shù)量
文獻[7]和文獻[11]是經(jīng)典的性能較好的隱寫分析算法,用來對算法安全性進行測試。
檢測率=(PT+PN)/2。YASS的嵌入?yún)?shù)q=10,B=10,本文算法的嵌入?yún)?shù)B=10,l=2。兩種模型對各種隱寫算法的檢測率如表1所示。
表中SH代表隱寫算法StegHide,2KB這一行中個別算法的嵌入容量小于2KB,已經(jīng)滿嵌,如 MB2的嵌入容量為1.68KB,OutGuess的嵌入容量為1.63KB;SH 代表StegHide。
由表1可知,兩種算法均對YASS算法和本文算法無能為力,檢測率并不隨著嵌入量的增加而提高。綜上所述,本文算法在提高有效嵌入率同時,保持與YASS接近的安全性。

表1 經(jīng)典隱寫分析算法對各種隱寫算法的檢測率
表中SH代表隱寫算法StegHide,2KB這一行中個別算法的嵌入容量小于2KB,已經(jīng)滿嵌,如 MB2的嵌入容量為1.68KB,OutGuess的嵌入容量為1.63KB;SH 代表StegHide。
由表1可知,兩種算法均對YASS算法和本文算法無能為力,檢測率并不隨著嵌入量的增加而提高。綜上所述,本文算法在提高有效嵌入率同時,保持與YASS接近的安全性。
為了提高YASS的嵌入容量,本文提出了一種基于系數(shù)比例的YASS改進隱寫方法,利用系數(shù)比例來匹配信息。本文方法在嵌入時保持載體的統(tǒng)計性質(zhì),沒有涉及對圖像的重壓縮操作,因而不用RA編碼而簡單地使用了標志位,從而提高了嵌入容量。實驗證明,本文方法安全性優(yōu)于傳統(tǒng)的DCT域隱寫方法,接近YASS,而有效嵌入容量高于YASS。
[1]A.Westfeld.High capacity despite better steganalysis[C]//Proc.of the 4th Informat-ion Hiding Workshop,2001:289-302.Software available at http://wwwrn.inf.tu-dresden.de/~westfeld/f5.html.
[2]http://zooid.org/paul/crypto/jsteg/.
[3]http://redwood.ucdavis.edu/phil/papers/iwdw03.htm.
[4]P.Sallee.Model-based Mothods for Steganography and Steganalysis[J].International Journal of Image and Graphics.2005,15(1):167-189.Software available at http://www.philsallee.com/mbsteg/index.html.
[5]N.Provos.Defending against staticstical steganalysis[C]//Proc.of 10th USENIX Security Symposium,Washington DC,USA,2001.Software available at http://www.outguess.org.
[6]S.Hetzl,P.Mutzel.A graph theoretic approach to steganography[C]//Proc.of the 9th IFIP TC-6TC-11International Conference, Communications and Multimedia Security,Salzburg,Austria,2005(3677):119–128.Software available at http/www.steghide.sourceforge.net.
[7]Pevny.T,F(xiàn)ridrich.J.Merging Markov and DCT features for multi-class JPEG steganalysis[C]//Proc.of 4th Electronic Imaging,Security,Steganography and Watermarking of Multimedia Contents,2007:3-14.
[8]Kaushal S,Anindya S.K.YASS:Yet Another Steganographic Scheme That Resist Blind Steganalysis[C]//IH 2007-Spring,2007:16-31.
[9]Divsalar,D.,Jin,H.Coding theorems for turbo-like codes[C]//Proc.of 36th Allerton Conf.on Communications,Control,and Computing,1998:201–210.
[10]Chen,B,Wornell,G.Quantization index modulation:a class of provably good methods for digital watermarking and information embedding[J].IEEE Transa-ctions on Information Theory,2001:1423-1443.
[11]Shi Y.Q,Chen C.A Markov process based approach to effective attacking JPEG steganography[C]//Proc of the-8th Information Hiding Workshop,2006:849-852.