摘要:密寫(Steganography)是信息隱藏(Information Hiding)的一個重要分支。鑒于密寫比信息加密更安全以及網(wǎng)絡(luò)與信息安全問題變得越來越重要,密寫已經(jīng)成為當(dāng)前國際上的研究熱點。JPEG是一種常見的圖像格式,在JPEG圖像中進(jìn)行密寫有著重要的實際意義。文章主要研究了以JPEG圖像為載體進(jìn)行數(shù)據(jù)密寫的基本模型,以及目前國內(nèi)外以JPEG圖像為載體的密寫算法。
關(guān)鍵詞:信息隱藏;JPEG圖像;密寫;算法
0引言
密寫是信息隱藏的一個重要分支,其目的是將信息秘密地、安全地傳遞給接收方,而不引起第三方的懷疑。相對于傳統(tǒng)將信息加密為密文的方法,密寫是將有用信息隱藏到另一個公開的信息媒體中,是對信息存在本身或信息存在位置的保密。鑒于密寫比信息加密更安全以及網(wǎng)絡(luò)與信息安全問題變得越來越重要,密寫已經(jīng)成為當(dāng)前國際上的研究熱點。
JPEG是一種使用非常廣泛的圖像格式,以JPEG圖像作為密寫載體有著重要的應(yīng)用價值。目前已出現(xiàn)多種以JPEG圖像為載體的密寫技術(shù),如Jsteg、OutGuess、F5等。本文主要研究以JPEG圖像為載體進(jìn)行數(shù)據(jù)密寫的基本模型,以及目前國內(nèi)外以JPEG圖像為載體的密寫算法。
1基本模型
JPEG標(biāo)準(zhǔn)是靜態(tài)圖像的壓縮編碼和譯碼標(biāo)準(zhǔn)。它是第一個壓縮靜態(tài)數(shù)字圖像的國際標(biāo)準(zhǔn),既可以用于灰度圖像,又可以用于彩色圖像。為了適應(yīng)各種應(yīng)用的不同要求,JPEG標(biāo)準(zhǔn)支持兩種圖像的建立模式:順序型、漸進(jìn)型。同時,它還包括兩種基本的壓縮算法:一種是基于DCT(離散余弦變換)的有損壓縮算法,另一種是基于預(yù)測方法的無損壓縮算法。由于前者具有較高的壓縮率,實際上已成為目前JPEG壓縮的常見形式?;贒CT變換的編碼流程圖如圖1所示。
首先,源圖像數(shù)據(jù)被分成8*8像素塊,每塊使用正向DCT(Forward DCT,F(xiàn)DCT)進(jìn)行變換,得到64個DCT系數(shù)值,這些DCT系數(shù)從低頻到高頻按照Zigzag次序排列,第一個值為DC(直流)系數(shù),其他63個為AC(交流)系數(shù)。然后,使用已經(jīng)規(guī)范化好的量化表對每個DCT系數(shù)量化。前一量化的DC系數(shù)用于預(yù)測當(dāng)前的DC系數(shù),然后對其差值進(jìn)行編碼;63個AC系數(shù)不進(jìn)行差分編碼。最后,對DCT系數(shù)進(jìn)行熵編碼。熵編碼的算法有兩種:哈夫曼編碼和算術(shù)編碼,當(dāng)前采用較多的是哈夫曼編碼。解碼的過程和編碼過程相反,如圖2所示。
在編碼過程中,從源圖像數(shù)據(jù)到獲取壓縮圖像數(shù)據(jù),共經(jīng)過三個步驟:FDCT變換,量化,熵編碼。其中FDCT變換和量化是有損變換過程,而熵編碼是無損變換。首先,需要確定在哪個位置隱藏信息。由于DCT變換是有損變換,量化也提-有損變換,當(dāng)我們將修改后的數(shù)據(jù)再次寫入JPEG文件時,會遺失部分信息,因此當(dāng)我們解碼恢復(fù)隱藏數(shù)據(jù)時就得不到和原來一模一樣的數(shù)據(jù),所以不能在FDCT變換和量化處修改圖像數(shù)據(jù),只能在熵編碼處修改。
隱藏算法分為三個步驟:
(1)對JPEG文件進(jìn)行格式分析,獲得它的熵編碼信息,采用哈夫曼解碼或算術(shù)解碼,得到整幅圖像的DCT變換系數(shù);
(2)按照某種規(guī)則對得到的DCT變換系數(shù)做一些微小的修改,將要隱藏的信息嵌入到DCT變換系數(shù)中;
(3)將修改后的DCT變換系數(shù)進(jìn)行熵編碼寫入到新的JPEG文件中。提取秘密信息的算法則是隱藏算法的逆過程,不再贅述。最關(guān)鍵的是第二步中修改規(guī)則的制定。目前已出現(xiàn)多種基于不同修改原則的,以JPEG圖像為載體的密寫技術(shù)。
2密寫算法
JPEG圖像是由分塊DCT變換后的系數(shù)按照一定的量化表量化而成,量化后的系數(shù)是量化表中對應(yīng)量化步長的整數(shù)倍。目前已出現(xiàn)了多種以JPEG圖像為載體的密寫方法。有的方法先修改量化表中對應(yīng)中高頻分量的量化步長,然后將秘密信息嵌入在圖像的中高頻系數(shù)上。但修改后的中高頻量化步長會小于低頻量化步長,這種異常會暴露秘密信息的存在,因此安全性不高。大多數(shù)密寫方法并不改變原始圖像的量化表,而是根據(jù)一定的規(guī)則直接將秘密信息嵌入在量化后的DCT系數(shù)上,如Jsteg,F(xiàn)5,OutGuess等。
2.1 Jsteg
Jsteg是基于JPEG圖像格式的著名的密寫工具;由D.Upham最早發(fā)明,而后很多軟件采用類似方法。Jsteg是將—個二進(jìn)制位的秘密信息隱藏在DCT量化后系數(shù)不是0,1、一l的最低—位。接收方解碼時只要依次取反量化DCT矩陣系數(shù)(不是0、1、-1)的最低—個二進(jìn)制位即可。由于Jsteg密寫僅僅在不等于0、1、-1的DCT系數(shù)上嵌入信息,所以密寫量較小。由于算法是將秘密信息直接嵌入在DCT系數(shù)的LSB上,因此不能抵抗x分析。
2.2 F5
F5算法是Westfeld提出的一種高容量的、具有較高安全性的信息隱藏算法。由于Jsteg類的算法可以采用x。檢測法進(jìn)行攻擊,Westfeld改進(jìn)了隱藏方法,只修改不為0的DCT系數(shù),當(dāng)要嵌入的信息與該位置DCT系數(shù)的最低位不一致時,將該位置DCT系數(shù)的絕對值減1,秘密信息采用隨機(jī)嵌入的方法,并采用了矩陣編碼的密寫方案。F5將DCT系數(shù)絕對值減1來隱藏信息的方法,會造成收縮現(xiàn)象,使得量化后DCT系數(shù)中的0顯著增加,F(xiàn)ridrich基于這個原理已實現(xiàn)了對F5算法的攻擊。
2.3 OutGuess
Outguess算法是Niels Provos針對Jsteg類算法的缺陷提出的一種方法,主要分兩個部分:嵌入過程和糾正過程。嵌入過程不修改值為0、1的DCT系數(shù),隨機(jī)決定下—個要嵌入的DCT系數(shù)的位置。糾正過程是利用那些未被修改的DCT系數(shù)進(jìn)行修改來保持直方圖不變。Outguess在嵌入信息時修改了DCT系數(shù),在糾正過程中也修改了DCT系數(shù),這種改變會造成空間域的邊界不連續(xù)性,修改越多則不連續(xù)性越大。因此,也存在安全漏洞。
3研究現(xiàn)狀
3.1國內(nèi)研究進(jìn)展
(1)張新鵬、王朔中提出的保持分塊特性的JPEG密寫,只在圖像非0的非直流DCT系數(shù)上負(fù)載信息;同時量化后的DCT系數(shù)都是整數(shù),用正奇數(shù),負(fù)偶數(shù)代表秘密信息1,用正偶數(shù),負(fù)奇數(shù)代表秘密信息O。實驗證明這種方法令原始圖像的分塊特性和直方圖都得到了很好的保持。
(2)馬加斌、程義民等提出了一種抗統(tǒng)計分析的DCT域信息隱藏方法:按z掃描順序抽取DCT域的低16個AC系數(shù),記為F1,…,F(xiàn)16,對應(yīng)的量化步長分別為q16,q16。設(shè)密寫數(shù)據(jù)為w.(取值為0或1),如果w.為0,則Fi的量化值Qi取N和N+I兩者中的偶數(shù);反之,則Q取N和N+I中的奇數(shù)。對得到的反量化值Qi*qi進(jìn)行偽隨機(jī)化處理。如果Fi>Qi*qi,則產(chǎn)生正幅值的隨機(jī)噪聲;反之,則產(chǎn)生負(fù)幅值的隨機(jī)噪聲。實驗證明這種方法很好地保持了公開圖像的噪聲分布與源圖像的一致性;而且進(jìn)一步減少了DCT域系數(shù)值的變化,具有較好的抗IQM(Image Quality Metrics)偵測能力。
以上兩種方法,雖抵抗了一定程度的密寫分析,具有較好的隱蔽性,但嵌入的數(shù)據(jù)量有限。
3.2國外研究進(jìn)展
(1)Mohammad Shirali-Shahreza提出的拼貼畫密寫,不是改變圖像特征和結(jié)構(gòu)的信息密寫,而是改變圖像的外觀來隱藏信息。算法思想是,大量相關(guān)的物體同時被放置在一個背景圖案中,通過改變每個物體的位置和類型來隱藏秘密信息。每個物體的位置和類型代表一個具體的符號,通過把這些數(shù)字符號放在一起,信息被隱藏在圖像中。不足之處是算法的穩(wěn)健性不夠高。
(2)恢復(fù)合成圖像的統(tǒng)計特性到原始載體圖像抵抗密寫分析。Outguess算法是直方圖補償LSB嵌入最早的嘗試。而Eggers等提出的使用直方圖保持?jǐn)?shù)據(jù)映射(HPDM)是達(dá)到同樣目的的一種更為嚴(yán)格的方法。最近,K.S01.a(chǎn)oki,K.Sullivan等提出了Statical Restoration for Robust and Secure Steganography。方法是使用降低嵌入率的抖動量化索引調(diào)制,保留一些DCT系數(shù)用來修改密寫后的直方圖以恢復(fù)為原始圖像的直方圖。使用抖動,令直方圖匹配原始圖像,而不是原始圖像的量化或壓縮版本;通過量化索引調(diào)制,對非惡意的失真受限抗擊(如再壓縮、添加噪聲等)更健壯。實驗證明此方案顯著降低了基于統(tǒng)計特性的可檢測性和基于分塊密寫分析的可檢測性。不足之處:減少了嵌入數(shù)據(jù)量。
4結(jié)束語
到目前為止,還無法建立信息隱藏技術(shù)的完整理論;密寫的重要特性——穩(wěn)健性、隱蔽性、嵌入數(shù)據(jù)量三者如何達(dá)到最優(yōu),還需密寫技術(shù)科研人員的不懈努力。
(注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。)