陳夠喜,張鵬程,伍玉良
(中北大學 電子與計算機科學技術(shù)學院,山西 太原030051)
數(shù)字圖像隱寫的最大載荷是信息隱藏研究的熱點之一,而信息隱藏的理論模型仍是Simmons提出的 “囚犯問題”模型[1]。在大量的空域圖像隱寫算法中,比較典型的隱寫算法就是LSB替換算法,包括LSB替換隱寫、MLSB替換隱寫、±Κ及隨機調(diào)制隱寫等,而對于JPEG圖像為載體的隱寫技術(shù)中提出了典型的JSteg、OutGuess、F5和 MB等典型算法[2-3],它們的本質(zhì)均是將空域中的LSB隱寫方法應用到量化后的DCT系數(shù),提高載體的隱寫容量。這些算法通過修改像素相應的LSB比特位,將隱秘信息嵌入到彩色或灰度圖像之中。MLSB[4]替換隱寫算法根據(jù)密鑰選取圖像的最低多個位平面上的比特位,然后將所選比特位用隱秘信息替換,又分為IMLSB和TMLSB。Sallee提出的基于模型的隱寫框架[5],通過修改不確定部分,既實現(xiàn)了隱秘信息的嵌入,同時又保持了它的分布不變,但不適合二值圖像隱寫。Tseng[6]提出了二值圖像的經(jīng)典算法。它允許在二值圖像中的任何位置進行黑白像素修改,在一個的分塊中,若允許至多改變其中的兩個像素,則其最大的嵌入容量為但它只能適用于二值圖像中。Wu[7]基于圖像的連通性和平滑性的要求,依據(jù)二值圖像分塊的可修改度的分值提出的信息隱藏算法,隱藏容量和安全性與具體的圖像有關(guān),而且完全不適于灰度圖像。
通過對灰度圖像和二值圖像的特征分析,本文基于圖像LSB比特流的特點,提出了一種通用圖像的大容量隱寫算法,重點討論和分析了至多修改1位的最大嵌入量,對灰度圖像、彩色圖像和二值圖像進行了分類闡述,并通過實驗驗證了該結(jié)論的有效性。
信息隱藏的主要載體是圖像,通過對載體圖像中的某些像素進行修改來實現(xiàn)攜帶隱秘信息。圖像的隱寫容量是指圖像作為載體的最大有效載荷即載體圖像中隱藏的比特數(shù)的總和。LSB(least significant bit)隱寫算法是通過修改圖像像素的最低有效位來實現(xiàn)信息隱藏,算法簡單,能夠?qū)崿F(xiàn)大容量隱寫[8]。
假設(shè)隱寫目標載體圖像為Q×W大小的灰度圖像,記為Cg;隱秘信息記為S;采用B1和B0表示兩位隨機的二進制數(shù)列。Cg的像素值記為pi,其中0≤pi≤255,i≤Q×W,則像素值pi可記為
將S轉(zhuǎn)換為二進制序列,記為S={s1,s2,…,sn}。隱秘信息S和轉(zhuǎn)換的二進制序列是相互可逆的。通過計算D1=bi2⊕bi1和D0=bi2⊕bi0實現(xiàn)LSB的隱寫[9]。下面先介紹定理1。
定理1 載體圖像C中的任意一個像素pi的最低3位中,嵌入2位隱秘信息至多只需修改1位[9]。
證明:由于B1B0和D1D0均是兩位2進制的組合,所以,可以歸納為分兩種情形。
(1)當B1B0=D1D0時,無需修改bi2bi1bi0中的任意一位即可嵌入2位隱秘信息B1B0。
(2)當B1B0≠D1D0時,分別為:
從前述假設(shè)和定義可得到
對比定義D1和D0以及各自的取反公式可得到(a)~(b)條件下可嵌入2位隱秘信息B1B0:(a)bi1取反;(b)bi0取反;(c)bi2取反。
可見,上述結(jié)論成立。
從上述定理1說明在灰度圖像的LSB隱寫中,最低3比特位中至多修改1位即可嵌入2位的隱秘信息。通常為了保持良好的視覺效果,實際隱寫時,采用LSB的最低位平面中隱寫,不僅嵌入效率高,又沒引起視覺失真。若在最低的3個位平面中按照像素LSB嵌入隱秘信息,在特定的圖像中,會引起較大的視覺失真。表1是嵌入前后的比特位變化的對比。
矩陣編碼技術(shù)是由R.Crandal提出的,F(xiàn)5隱寫由將它應用其中,大幅提高了隱寫效率[10]。在一般意義上的LSB隱寫中,平均修改LSB的一半才能嵌入1比特的信息,而矩陣編碼的目的將實現(xiàn)以最低的修改率嵌入最多的隱秘信息。
表1 隱秘信息嵌入前后對比
下面給出矩陣編碼的特殊形式[11]。即采用n個載體數(shù)據(jù)的LSB嵌入k個比特的隱秘信息,其中n=2k-1。當最多只修改1比特時,記為(1,n,k),載體的嵌入效率為
在F5隱寫中,不同k值將直接影響載體的嵌入效率E和載體數(shù)據(jù)利用率R,從式(4)~(6)可以看出。表2列出了不同k值對應的矩陣編碼的嵌入效率對比表。從表2的數(shù)據(jù)變化說明,當k=1時,矩陣編碼退化為基本的LSB隱寫即定理1的表述。也可認為定理1是F5隱寫的基本形式。當k值越大,載體嵌入效率E越大,相應的載體數(shù)據(jù)利用率就會越低。
將修改1位的數(shù)據(jù)嵌入推廣到通用形式[11]。設(shè)載體數(shù)據(jù)LSB和隱秘數(shù)據(jù)的二進制形式分別表示為a=a1a2…an,x=x1x2…xn。定義散列函數(shù)載體可能由于嵌入隱秘信息發(fā)生數(shù)據(jù)位的修改,令y=x⊕g(a),y為十進制數(shù)。
那么,將得到載體嵌入后的LSB序列
具體嵌入隱秘信息時,可根據(jù)表2選擇最優(yōu)的k值,使其得到最優(yōu)的嵌入效率。
文獻 [12]通過分析和證明得到的結(jié)論:在一個m×n的二值圖像塊中,最多只修改1比特像素時的最大隱寫容量為?log2(mn+1) ,也可視為F5隱寫在載體變?yōu)槎祱D像時的一種特殊形式。
表2 矩陣編碼的嵌入效率對比[9]
表3是LSB隱寫和定理1算法的性能對比。從表3中可以看出,采用定理1的改進算法,在數(shù)字灰度圖像的最低位平面嵌入隱秘信息數(shù)據(jù)利用率最大為66.7%,而載體嵌入效率為33.3%,分別比LSB隱寫的數(shù)據(jù)利用率降低33.3%,載體嵌入率33.4%
表3 定理1改進算法與LSB隱寫算法的對比
從定理1和上面的分析可得到下面的推論。
推論1 對于Q×W的灰度圖像Cg,至多修改像素中的1比特位時的最大隱寫容量|M|=2(Q×W)比特位。此定理的證明由定理1顯然成立。
推論2 對于Q×W的彩色圖像CC,至多修改像素中的1比特位時的最大隱寫容量|M|=6(Q×W)比特位。
彩色圖像有RGB三分量,在每一個像素點分別有3個像素值分量,所以,隱寫字節(jié)數(shù)就是灰度圖像的3倍。
推論3 對于二值圖像圖像Cb的Q×W分塊,至多修改像素中的1比特位時的最大隱寫容量比特位[12-13]。
證明:在二值圖像中,只有 “0”和 “1”兩個像素值或狀態(tài)。至多改變1位像素值時,圖像分塊就會有Q×W+1種狀態(tài)。而嵌入的最大容量|M|必然滿足2|M|≤QW+1即所以推論3成立。
上述推論3對于二值圖像Cb的Q×W分塊在最多修改1位時的最大隱寫容量的上限進行了刻畫,是文獻 [8]的重要結(jié)論,但若將其分塊內(nèi)的比特位進行有序排列,則它是本文定理1的特例之一。同理,對于二進制比特流也適用于本方法。
推論4 對于長度L的B=b1b2…bj…bL二進制比特流,分塊數(shù)為A,至多改變1比特位時的最大隱寫容量為
證明:長度L的二進制比特流可以視為分塊數(shù)為A的二值圖像,分塊的大小為?L/A?,依據(jù)推論3可得它的最大隱寫比特數(shù)為
所以,結(jié)論成立。
推論4是推論3的一個推廣,將二進制的比特流作為二值圖像的一個分塊考慮,從而得到至多修改1比特位時的最大隱寫容量的上界。進一步可推廣到可轉(zhuǎn)化為二進制序列的任何載體圖像的隱寫容量的刻畫,將彩色圖像、灰度圖像和二值圖像有機結(jié)合在一起,得到關(guān)于任意圖像至多修改一個像素中的1比特位時的最大隱寫容量。
定理2 對于像素數(shù)量為N的任意載體圖像C,圖像的子塊數(shù)長度為A,至多修改一個像素中的1比特位時的最大隱寫容量其中α為圖像類型值,對于二值圖像、灰度圖像和彩色圖像,分別取1,2和3。
證明:將載體圖像C轉(zhuǎn)換二進制序列,其長度為N。應用推論3和4可知定理2的結(jié)論成立。
從定理2找到了灰度圖像與二值圖像的共同特征,即當把載體圖像轉(zhuǎn)換為二進制序列或比特流時,載體圖像的外表特征將消失,內(nèi)在特征將體現(xiàn)出來。對二進制序列進行隱寫時,只要在每字節(jié)的LSB位進行修改,將不會影響載體圖像的視覺效果或像素間的相關(guān)性。
由于二值圖像只有 “0”和 “1”兩個像素,導致大多數(shù)灰度或彩色圖像的隱寫算法不能推廣到二值圖像,反之亦然。但從數(shù)字圖像的本質(zhì)特征出發(fā),發(fā)現(xiàn)灰度圖像、彩色圖像和二值圖像的隱寫容量在LSB下是一致的。為了提高的隱寫容量,還可以對原始的二值圖像進行分塊,分塊的大小也會對隱寫的容量構(gòu)成影響。灰度圖像或彩色圖像由于可能受到文件格式的影響,其對應的二進制比特流中的部分字節(jié)不能進行隱寫,但真正的核心二進制序列均具有隱寫特征的一致性,進而得到了任意載體圖像至多修改一個像素中的1比特位的最大隱寫容量的結(jié)論。因此,載體圖像的LSB位隱寫容量是由對應的比特流的長度決定,與載體的外部特征無關(guān)。
在圖像的LSB隱寫中,它的嵌入和提取算法相對簡單,算法復雜度低。
隱秘信息的隱藏位置通常由混沌映射和偽隨機序列兩種方法來確定,本文采用混沌映射。Logistic映射[14]表示為
在上式中,當0.3569≤η≤4時,式(9)產(chǎn)生的序列是混沌序列?;煦缧蛄性谛盘柼幚砘騻鬏敃r會表現(xiàn)為隨機噪聲和連續(xù)寬頻譜等類似的特性[14]。當取特定的初始值X0和η,由式(7)經(jīng)過迭代產(chǎn)生非周期和不收斂的序列,而且對初始值特別敏感。將載體的像素數(shù)量經(jīng)過處理后映射到(0,1)之間,得到初始值X0,而且迭代次數(shù)必須大于20。
2.2.1 嵌入算法
(1)讀取原始載體圖像C,計算C中的像素的數(shù)量N和α,計算最大隱寫比特數(shù)
(2)隱秘圖像S的預處理:包括隱秘圖像S的置亂和轉(zhuǎn)換為S′=s′1s′2…s′i…s′n的二進制序列。S和S′的長度相同,設(shè)為,在密鑰K的作用下,對S′進行加密,得到相同長度的序列S″=s″1s″2…s″i…s″n。
(3)當l≤|M|時,進行隱寫,否則退出。
(4)設(shè)定混沌映射的初始值η、X0和迭代次數(shù),確定隱秘信息的嵌入位置。
(5)讀取C的像素pi的最低3位,計算D1=bi2⊕bi1和D0=bi2⊕bi0,并將 D1D0和S″iS″i+1進行對比,依據(jù)定理1進行修改相應的比特位,直至嵌入全部的隱秘信息。最后得到攜密載體Cs。
2.2.2 提取算法
通過對定理1和2的分析,可知本算法為可逆算法,可準確提取出全部隱秘信息。
(1)讀取攜密載體Cs,計算C的像素數(shù)量N和α。
(2)依據(jù)混沌映射的初始值η、X0和迭代次數(shù)得到隱秘信息在Cs中的初始位置。
(3)依據(jù)定理1和2的規(guī)則,一次提取出S″=s″1s″2…s″i…s″n。再在密鑰K的作用下進行解密和再置亂,得到隱秘信息S。
2.3.1 密鑰矩陣和權(quán)矩陣
在實現(xiàn)推論3的隱秘信息的嵌入時,需要引入密鑰矩陣和權(quán)矩陣[6-7]。
設(shè)原始的二值圖像F分拆為若干的m×n的分塊Fi,隱寫者和接收者同時擁有相同的密鑰矩陣K和權(quán)矩陣W,而且K和W矩陣與分塊的大小相同也是m×n,K內(nèi)的元素是只包含0和1的隨機矩陣。
隱藏信息的比特位數(shù)r≤log2(mn+1),即隱秘信息為最大r位的比特流數(shù)據(jù)M=b1b2…br,用(M)H表示 M對應的十進制數(shù)。權(quán)矩陣W定義為從SUM中至少取值一次?;诿荑€矩陣K和權(quán)矩陣W的隱秘信息的嵌入算法如下:
(1)依據(jù)給定條件設(shè)定密鑰矩陣K和權(quán)矩陣W。
(2)判斷隱秘信息比特流的長度是否滿足r≤log2(mn+1),若不滿足,則需替換原始二值圖像載體。
(3)對于所有分塊,計算Si,j,其中⊕表示矩陣異或操作,而表示矩陣按位乘,SUM表示的結(jié)果矩陣的全體元素之和。
(4)計算隱秘信息的嵌入位置集合
式中:Sw——修改原始二值圖像的分塊Fi后的SUM增加或減少w的所有滿足條件的位置(j,k)的集合。
(5)對于非全白或非全黑的分塊,計算權(quán)差
當d=0,不進行任何嵌入操作;否則,任意選擇一個h,h∈ {1,2,…2r-1},分別求出Shd和S-(h-1)d,并且滿足Shd≠Φ和S-(h-1)d≠Φ,Φ 表示空集。在Shd和S-(h-1)d中各任意選擇一個位置,替換 Fi中的對應位置上的值,Shd和 S-(h-1)d分別表示這一塊中翻轉(zhuǎn)后使SUM增加j×k和減少(j-1)×k的所有像素的位置的集合,從這2個集合中各自選擇一個像素進行翻轉(zhuǎn),最終使SUM增加d。這些操作是保證S和(M)H與模2r同余。
2.3.2 嵌入算法
(1)把載體圖像C轉(zhuǎn)換為二進制序列,并等分為8H個子序列,H的取值越大越好。
(2)隱秘圖像S的預處理同2.2.1,得到S″。
(3)將經(jīng)過預處理的S″按照函數(shù)f分拆,得到子序列λ1,λ2,…,λj,…λn′,n′為分拆后的子序列的量。
(4)當l≤M時,進行隱寫,否則退出。
(5)設(shè)定混沌映射的初始值η、X0和迭代次數(shù),確定隱秘信息的嵌入位置。
(6)讀取載體C的子序列的各像素pi的最低3位,計算D1=bi2⊕bi1和D0=bi2⊕bi0,并將D1D0和S″iS″i+1進行對比,依據(jù)定理1進行修改相應的比特位,直至嵌入全部的隱秘信息。最后得到攜密載體Cs。
提取算法同2.2.2,只是需要重新合并提取的隱秘信息的各子序列,才能得到完整的隱秘信息S。
基于數(shù)字圖像的LSB隱寫,隱藏容量較大,算法簡單。通過定理1,可在最小修改度的情形下,得到最大的隱寫容量。但它的安全性仍然可以保證。隱秘信息的預處理是采用置亂和加密,將隱秘信息轉(zhuǎn)換為表面上無法分析的亂碼。密鑰K由密鑰矩陣生成,矩陣的大小與載體圖像相同設(shè)為Q×W。能夠生成的密鑰個數(shù)為
假設(shè)載體圖像采用512×512的Lena.tif文件,那么生成密鑰的總數(shù)為2262144,密鑰破解難度極大。由式(8)產(chǎn)生的混沌序列具有的非周期和不收斂的特性,而且針對初始值非常敏感。將圖像的像素個數(shù)經(jīng)過函數(shù)X0=f(N,|M|)生成,迭代次數(shù)大于20次(設(shè)為n=50),生成X50。如果X50小于Q×W,那么X50即為隱藏的初始位置,否則,進行如下變換:X50=?mod(X50)/(QW) 。
進一步分析,由于載體對應的二進制序列相對較長,只要等份的次數(shù)足夠大,同時它也符合定理2的安全性定義的條件,那么隱寫系統(tǒng)將是安全的。
下面以灰度圖像和二值圖像為例?;叶葓D像采用512×512的Lena.tif文件,隱秘信息采用文本文件text.txt,隱寫方法采用定理1所闡述的LSB法,在像素的最低3位中,至多修改1比特位,計算其最大的隱寫容量。根據(jù)定理1的推論1的公式|M|=2(Q×W)計算,載體圖像lena.tif的最大隱寫容量的理論值為
它所攜帶的隱秘信息的安全性主要依賴于密鑰的安全性。而采用定理2時,由于它是基于二進制序列的隱寫,子塊長度為A=16,它的最大隱寫容量為
圖1為隱寫前后的圖像,沒有明顯的視覺變化,但后者攜帶了大量的隱秘信息?;诙ɡ?和2的隱寫算法均是LSB隱寫算法,表4是與文獻 [6]的對比分析,表5是與文獻 [15]基于安全性的對比分析。從上述分析中可以看出,定理1和2以及推論的有效性,隱秘信息量大,但抗攻擊能力需進一步提高。
圖1 灰度圖像隱藏前后
表4 與TCP算法對比修改像素量對比
二值圖像隱寫的主要方法之一就是分塊法。它對分塊進行檢測與變換,然后對滿足條件的像素點進行翻轉(zhuǎn)隱藏秘密信息。二值圖像的隱寫載體和攜密載體如圖2所示的文本載體。
圖2 二值圖像隱藏前后
為了適用定理1~2以及各推論,二值圖像的分塊采用1×A,符合二進制序列的特點,其中A=64,則隱藏前的二值圖像將由若干長度為64的子序列構(gòu)成。子序列在至多修改1位時最大隱寫容量為 |MC|≤3×213,然而在實驗嵌入式必須遵守下面規(guī)則:①全黑或全白的分塊或子序列不能修改;②分塊的嵌入能力的分析,相關(guān)性強的元素不能修改;③修改后可能變?yōu)槿诨蛉椎姆謮K不能修改。結(jié)合上述3種情形,載體的分塊數(shù)將大大減少。
Tseng在文獻 [6]中提出的TCP算法,在一個m×n的分塊中,若允許至多改變兩個像素,則其最大的嵌入容量為log2(mn+1)。由于峰值信噪比(PSNR)和和均方差(MSE)主要是針對灰度和彩色圖像的失真度進行度量的,因此,本文對二值圖像的度量采用DRDM法[15-16],它采用距離倒數(shù)的失真度表征圖像的失真度,是刻畫二值圖像的失真度的一種方法。
表4是圖2的載體分塊和嵌入隱秘信息的數(shù)據(jù)分析,表5是與文獻 [6]TCP算法對圖像質(zhì)量對比的情形。表5反映了二值圖像的圖像失真度的變化情形,從實驗的結(jié)果分析可看出本文算法不僅嵌入容量大,而且同比失真度較小,圖像質(zhì)量將更好。特別是在達到分塊的隱寫上限時圖像的失真度的沒有突出變化。由于本文的隱寫算法修改像素少卻能夠達到文獻 [6]的嵌入效果,而失真度卻沒有明顯變化,為設(shè)計大容量隱寫提供設(shè)計方案。
表5 二值圖像LSB隱寫與TCP算法對比
數(shù)字彩色和灰度圖像具有豐富的灰度層級,而二值圖像只有 “0”和 “1”兩個像素的變化,通用統(tǒng)一的數(shù)字圖像的隱寫容量通常難以實現(xiàn)。本文從數(shù)字圖像的原始LSB隱寫技術(shù)出發(fā),分析了數(shù)字圖像的LSB比特流及其相關(guān)變化情形,提出了并證明了基于LSB的各類隱寫算法的歸一化的結(jié)論,對彩色灰度圖像和二值圖像的最大隱寫容量進行歸一化,并將批量隱寫最大容量增加了1倍。隨著基于LSB隱寫的局限性和隱寫分析的進展,今后,將對大容量通用隱寫容量及其安全性進行深入的研究和探討。
[1]Cox I J,Miller L,Bloon A,et al.Digital watermarking and steganography [M].2nd ed.SanMateo,CA:Morgan Kaufmann,2008:1-13.
[2]LIU Fenlin,LIU Jiufen,LUO Xiangyang.Digital image steganalysis [M].Beijing:China Machine Press,2010(in Chinese)[劉粉林,劉九芬,羅向陽.數(shù)字圖像隱寫分析 [M].北京:機械工業(yè)出版社,2010.]
[3]ZHOU Qinglei,HUANG Minglei.Information hiding method for JPEG image [J].Computer Engineering and Design,2010,31(19):4178-4181.)(in Chinese)[周清雷,黃明磊.JPEG圖像的信息隱藏方法 [J].計算機工程與設(shè)計,2010,31(19):4178-4181.]
[4]Nguyen B,Yoon S,LEE H.Multi bit plane image steganagraph [G].LNCS 4283:Proceeding of International Workshop on Digital Watermarking,2006:61-70.
[5]Sallee P.Moedl-based methods for steganography and steganalysis[J].International Journal of Image Graphics,2005,5(1):167-190.
[6]Tseng Y C,CHEN Y Y,Pan H K.A secure data hiding scheme for two-color images[J].IEEE Transactions on Communications,2002,50(8):1227-1231.
[7]WU M,LIU B.Data hiding in binary for authentication and annotation[J].IEEE Transactions on Multimedia,2004,6(4):528-538.
[8]Ker A D.Steganalysis of LSB matching in grayscale images[J].IEEE Signal Processing Letters,2005,12(6):441-444.
[9]CHEN Gouxi,CHEN Junjie.Research of capacity for batch steganography [J].Journal of Application Research of Computers,2011,28(9):3492-3494(in Chinese).[陳夠喜,陳俊杰.批量隱寫容量研究 [J].計算機應用研究,2011,28(9):3492-3494.]
[10]SU Yajuan.One space field information hiding algorithm based on matrix encoding [J].Computer Engineering and Design,2009,30(23):5344-5347.)(in Chinese)[蘇亞娟.基于矩陣編碼的空域信息隱藏算法 [J].計算機工程與設(shè)計,2009,30(23):5344-5347.]
[11]Westfield A.F5-A steganographic algorithm:High capacity despite better steganalysis [G].LNCS 2137:Proceeding of 4th international workshop on information hiding.Berlin,Springer,2001:289-302.
[12]GUO Meng,ZHANG Hongbin,WEI Lei.Data hiding in binary images[J].Acta Electronica Sinica,2009,37(11):2409-2415(in Chinese)[郭萌,張鴻斌,魏磊.二值圖像中的數(shù)據(jù)隱藏算法 [J].電子學報,2009,37(11):2409-2415.]
[13]Yu Chiang Li,Chia Ming Yeh,Chin Chen Chang.Data hiding based on the similarity between neighboring pixels with reversibility[J].Digital Signal Processing,2010,20(4):1116-1128
[14]Collet P,Eckmann J P.Iterated maps on the interval as dynamical system [M].Boston:Birkhauser,1980.
[15]LU Haiping,Alex C Kot,SHI Yunq.Distance-reciprocal distortion measure for binary document image [J].IEEE Signal Processing Letters,2004,11(2):228-231.
[16]Karsten M,Borgwardt A G,Malte J R,et al.Integrating structured biological data by kernel maximum mean discrepancy[J].Bioinformatics,2006,22(14):49-57.