張 茂,虞曉慶
(武警工程大學(xué)研究生管理大隊(duì),陜西西安 710086)
隨著計算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)字媒體的信息安全、知識產(chǎn)權(quán)保護(hù)和認(rèn)證等問題也變得日益突出,已成為數(shù)字世界中的一個重要議題。
數(shù)字水印(Digital Watermarking)[1-3]作為信息隱藏技術(shù)的一種,可以解決網(wǎng)絡(luò)傳輸中信息安全和版權(quán)保護(hù)問題,這也是多媒體數(shù)據(jù)網(wǎng)上傳輸需要解決的關(guān)鍵問題之一。它為解決信息安全和版權(quán)保護(hù)問題提供了新的思路:即向待保護(hù)內(nèi)容中嵌入版權(quán)信息。這樣的信息稱作數(shù)字水印,它通常是不可見的,而且可以抵擋一定的攻擊,不影響原數(shù)據(jù)的視聽效果,并且這些數(shù)字信息僅允許授權(quán)用戶可以部分或全部從混合數(shù)據(jù)中恢復(fù),以達(dá)到版權(quán)保護(hù)的作用。到目前為止,大部分的水印研究都集中在圖像研究,其原因在于圖像是最基本的多媒體數(shù)據(jù),且互聯(lián)網(wǎng)的發(fā)展為圖像水印技術(shù)提供了大量的應(yīng)用需求。此外,水印的嵌入位置和嵌入方法目前還沒有找到一種公認(rèn)的最優(yōu)策略,通常要兼顧水印的魯棒性和不可見性,而且水印信息嵌入位置的不理想更容易被攻擊者破壞[4-6]。
在自適應(yīng)小波變換和混沌理論基礎(chǔ)上,提出一種新的數(shù)字圖像水印算法。首先將水印信息混沌置亂加密,再結(jié)合人眼視覺特性,確定載體圖像的紋理區(qū),將置亂的水印信息嵌人到載體圖像的紋理區(qū)中。該方法有效提高了水印的魯棒性,仿真實(shí)驗(yàn)表明其具有一定的可行性。
Logistic 混沌映射[7-8]是一種被廣泛使用的混沌映射,當(dāng)其處于混沌狀態(tài)時,即由不同初始狀態(tài)生成的序列是非周期、不收斂、不相關(guān)、并對初始值較敏感,因而在水印預(yù)處理方面使用較為廣泛。但混沌序列也存在一定的安全漏洞,攻擊者只要能以某種方式獲得這個混沌密鑰序列,就可以解密任何用這個密鑰序列加密的密文,而不必去花費(fèi)精力試圖了解算法的初始密鑰[9]。由于存在這樣的漏洞,文中算法在雙極性Logistic混沌序列基礎(chǔ)上,又引入m序列置亂,對水印信息進(jìn)行先后兩次不同方式的處理以加強(qiáng)水印信息的安全性。
設(shè) N ×N 維水印圖像為 f(x,y),x,y=0,1,…,N -1,若 N 滿足2k-1<N≤2k,取2k級本原多項(xiàng)式 f(x)作為m序列產(chǎn)生器的特征方程。則水印圖像f(x,y)的水平坐標(biāo)x和垂直坐標(biāo)y可分別用前k個和后k個移位寄存器的狀態(tài)來表示,其對應(yīng)關(guān)系如式(1)所示
式中,r表示m序列由第0時刻開始的移位次數(shù);r∈{0,1,…,2k- 1}。ak-i,r和 a'k-j,r表示前 k 個和后 k 個移位寄存器在r的狀態(tài)。假設(shè)I(x',y')表示I(x,y)經(jīng)m序列變換后的圖像,則m序列變換的算法實(shí)現(xiàn)可描述為[10]:(1)設(shè) I(x,y)的第 1 個像素點(diǎn)映射到 I(x',y')的任意一點(diǎn)(x0',y0'),其中,x0',y0'∈[0,1,…,N -1],x0'和y0'分別對應(yīng)前k個和后k個移位寄存器的狀態(tài)。(2)m序列移位一次,并由移位寄存器狀態(tài)用式(1)計算x1和y1,檢查x1和y1是否同時滿足式(2)的兩個條件
若式(2)的任意條件不滿足,m序列繼續(xù)移位,重復(fù)第二步操作,直到尋找到滿足式(2)的x和y為止,并把此時的x和y記為x1'和 y1',將 I(x,y)的第2個像素點(diǎn)映射到I(x',y')的點(diǎn)(x1',y1')。(3)m序列繼續(xù)移位,按照步驟(2)對I(x,y)其他像素點(diǎn)映射到I(x',y')中,序列經(jīng)過一個周期后,正好將I(x,y)的所有像素點(diǎn)都映射到I(x',y')的對應(yīng)點(diǎn)。
通過上述步驟可將水印信息通過m序列置亂,但僅通過水印預(yù)處理提高水印的安全性和魯棒性是不夠的,還需要將水印嵌入在載體圖像中合適的位置。
選擇合適的水印嵌入位置也可以提高水印的安全性和魯棒性,小波變換是分解載體圖像時比較常見的一種變換域方法,是目前的主要研究方向。基于小波變換域(DWT)的數(shù)字水印技術(shù)是一種時間—尺度信號的多分辨率方法。它不僅可以較好地匹配HVS特性,而且與JPEG2000兼容,但傳統(tǒng)小波變換對圖像紋理細(xì)節(jié)的高頻子帶未進(jìn)行分解處理,自適應(yīng)變換改進(jìn)后數(shù)字水印的檢測需原圖像,無盲檢測特性,自適應(yīng)小波變換能克服上述小波變換的不足,可對高頻和低頻子帶進(jìn)行自適應(yīng)分解,假設(shè)圖像I={g(i,j),1≤i≤M,1≤j≤N},代表圖像I的第i行、第j列像素灰度值,其具體如過程下[11]:
(1)計算原始圖像I的能量E0
(2)選擇合適的小波基,將上述圖像I分解成4個子帶 Il,θ,其中,l表示小波分解層 θ∈{LL,LH,HL,HH}表示子帶的方向。
(3)仿照式(3)計算各子帶圖像Il,θ的能量E。
(4)如果子帶圖像Il,θ的能量E小于某個閾值則終止分解。
(5)如果子帶圖像Il,θ的能量E大于某個閾值,則對子帶圖像Il,θ按照以上步驟再分解,最后,即可得到需要的圖像區(qū)域。
基于上述理論的介紹,可知文中算法結(jié)合混沌序列、m序列、自適應(yīng)小波變換等有關(guān)知識實(shí)現(xiàn),包括水印嵌入和水印提取與檢測兩個部分。
選取水印圖像I為n×n維,載體圖像H為m×m維(m>n),具體過程如下:(1)對水印圖像I進(jìn)行雙極性混沌置亂,得到圖像I1。在這里生成密鑰K1,包括混沌初始值x0和參數(shù)q;(2)按照m序列置亂算法,對圖像I1進(jìn)行m序列置亂,得到圖像I2,令系數(shù)矩陣為w。這里生成密鑰K2,包括初始狀態(tài)值、參數(shù)k和置亂次數(shù)r;(3)將載體圖像H分成4×4個子塊,計算每一塊的熵值和方差,根據(jù)熵值和方差的大小將圖像歸為3類:平滑區(qū)、邊緣區(qū)和紋理區(qū)。計算每一子快的熵值,熵值較小的區(qū)域是平滑區(qū);熵值較大的區(qū)域是非平滑區(qū),而在非邊緣區(qū)中,紋理區(qū)對應(yīng)的方差較小,邊緣區(qū)對應(yīng)的方差較大,選取合適的熵和方差閾值,確定紋理區(qū)的范圍。(4)將紋理區(qū)進(jìn)行自適應(yīng)小波變換,選取其高頻區(qū)域中較大的n×n個小波系數(shù),并記錄相應(yīng)的位置。(5)將置亂后的水印信息I2掃描成一維二值序列I',按照式(4)進(jìn)行嵌入
式中,Gll表示高頻區(qū)域的小波系數(shù);Gll'表示高頻區(qū)域修改后的小波系數(shù);α表示水印嵌入強(qiáng)度,一般由實(shí)驗(yàn)具體確定。
水印提取是水印嵌入的逆過程,可實(shí)現(xiàn)盲提取,提取過程如下:(1)將載體圖像分成4×4子塊,計算每個子塊的熵值和方差。(2)設(shè)定與嵌入時相同的閾值,依據(jù)每個子快的熵值和方差大小選取紋理區(qū)。(3)將紋理區(qū)域進(jìn)行自適應(yīng)小波分解,得到高頻子帶,根據(jù)記錄的位置信息選擇含水印信息的小波系數(shù),依次按照式(5)提取出水印信息(4)將水印信息依據(jù)用密鑰K2,對提取出的系數(shù)矩陣用m序列逆置亂。(5)應(yīng)用密鑰K1,對m序列逆置亂后的矩陣再進(jìn)行逆混沌置亂,得到水印圖像I(x,y)。
實(shí)驗(yàn)使用Matalb7.0軟件,采用512×512像素的brab圖像作為載體圖像,如圖1(a)所示;水印圖像為32×32像素的二值圖像,如圖1(c)所示;嵌入水印圖像,如圖1(b)所示;未受攻擊提取水印圖像,如圖1(d)所示;混沌初始值x0=0.5,參數(shù)q=2;嵌入強(qiáng)度a=0.2;m序列中初始狀態(tài)為1 000 000 000,k=5,r=1;水印圖像質(zhì)量客觀評估采用PSNR和NC值,從主觀來看,圖1(b)與圖1(a)并無太大差別,感覺不到水印痕跡,達(dá)到了水印不可見性的要求;從客觀來看,PSNR=40.74 dB,未受攻擊提取水印NC=1。
圖1 常見的嵌入水印圖像
表1給出了常見圖像攻擊操作對水印性能的影響,并與文獻(xiàn)[12]對比。從表中可以看出,該算法較文獻(xiàn)[12]中的算法在NC值上有所提高,在圖像壓縮攻擊上有較大地性能提升。
?
?
提出了一種基于混沌映射與m序列相結(jié)合的水印加密方式,結(jié)合人眼視覺特性與自適應(yīng)小波變換相關(guān)知識完成水印嵌入。該算法對混沌加密后的水印圖像又進(jìn)行m序列置亂,以增強(qiáng)其隨機(jī)性和安全性。對載體圖像先進(jìn)行分塊,再計算各子塊的熵值和方差,確定紋理區(qū),最后通過自適應(yīng)小波變換將紋理區(qū)分解,選擇高頻子帶作為嵌入水印區(qū)域,將水印信息嵌入載體圖像。實(shí)驗(yàn)表明,該算法具有良好的魯棒性及不可見性,對常用攻擊具有較好的抵抗能力。
[1]TIRKEL A Z,RANKIN G A,VAN R M S,et al.Electronic watermark[C].IEEE Communications,1993,140(1):66-72.
[2]TANAKA K,NAKAMURA Y,MATSUI K.Embedding secret information into a dithered multilevel image[J].Technology and Society Magazine,1990,9(1):216 -220.
[3]王穎,黃志蓓.數(shù)字水?。跰].北京:電子工業(yè)出版社,2003.
[4]王穎,肖俊,王蘊(yùn)紅,等.數(shù)字水印原理與技術(shù)[M].北京:科學(xué)出版社,2007.
[5]VAN SCHYNDEL R G.Embedding image watermarks in DC components[J].IEEE Transactions on Circuits and Systems for Video Technology,2000,10(6):974 -979.
[6]BENDER W.Techniques for data hiding[J].IBM Systems Journal,1996,35(3 -4):313 -336.
[7]包善琴.基于混沌序列和小波變換的彩色圖像水印算法研究[D].長沙:中南大學(xué),2009.
[8]徐柢軍.基于混沌序列的數(shù)字圖像擴(kuò)頻水印算法研究[D].濟(jì)南:山東大學(xué),2006.
[9]肖迪,趙秋樂.一種基于Logistic混沌序列的圖像置亂算法的安全分析[J].計算機(jī)應(yīng)用,2010,30(7):1815-1817.
[10]高恩婷,劉家勝.基于M序列的數(shù)字圖像置亂方法[J].微電子學(xué)與計算機(jī),2009,26(6):171-174.
[11]張連俊.自適應(yīng)小波變換的混沌擴(kuò)頻數(shù)字水印[J].計算機(jī)工程與設(shè)計,2007,28(11):2603 -2605.
[12]吳沖亞.基于混沌的數(shù)字水印技術(shù)研究[D].西安:武警工程學(xué)院,2010.