頊 聰,王興田,陶永鵬
(1.大連外國語大學(xué)軟件學(xué)院,遼寧大連 116044;2.大連外國語大學(xué)語言智能研究中心,遼寧大連 116044)
可逆信息隱藏(Reversible Data Hiding,RDH)是在載體圖像中可逆地隱藏附加數(shù)據(jù),并能無差錯(cuò)地提取附加數(shù)據(jù)和無損恢復(fù)原始圖像[1-2]。傳統(tǒng)的RDH 主要有3 種方法:基于無損壓縮的可逆信息隱藏算法[3-4]、基于直方圖平移的可逆信息隱藏算法[5]和基于預(yù)測誤差擴(kuò)展的可逆信息隱藏算法[6-7]。隨著網(wǎng)絡(luò)的快速發(fā)展以及人們隱私意識的增強(qiáng),加密圖像的可逆信息隱藏(RDH in Encrypted Image,RDHEI)成為研究的熱點(diǎn)。RDHEI 可以在不知道原始內(nèi)容的情況下嵌入數(shù)據(jù),實(shí)現(xiàn)了隱私、版權(quán)保護(hù),可廣泛用于軍事、醫(yī)療等領(lǐng)域。例如:醫(yī)學(xué)圖像常被用作診斷依據(jù),在醫(yī)生和醫(yī)生、醫(yī)生和患者之間通過互聯(lián)網(wǎng)進(jìn)行傳輸和存儲,通常此類圖像中包含大量的個(gè)人隱私信息及有關(guān)醫(yī)生的診斷說明信息。因此保護(hù)醫(yī)學(xué)圖像的信息安全極其重要。利用加密圖像信息隱藏算法,通過對圖像及嵌入信息的處理,一方面可以滿足大量信息的嵌入,另一方面保證圖像及嵌入信息在傳輸中不被識別和泄露。在接收端則可根據(jù)不同應(yīng)用需要獲取圖像信息(如醫(yī)學(xué)影像本身)及嵌入信息(患者的個(gè)人信息及診斷信息)。
根據(jù)加密前是否需要對圖像進(jìn)行預(yù)處理,現(xiàn)有的RDHEI算法可分為加密前預(yù)留空間(Reserving Room Before Encryption,RRBE)和加密后騰出空間(Vacating Room After Encryption,VRAE)兩類。Zhang[8]提出基于VRAE 的位翻轉(zhuǎn)RDHEI 算法。該算法按位異或加密原始圖像,翻轉(zhuǎn)加密圖像塊一半像素的三個(gè)最低有效位(Least Significant Bit,LSB)實(shí)現(xiàn)1 bit 數(shù)據(jù)的嵌入,算法的嵌入量較低。王子馳等[9]提出根據(jù)信息隱藏密鑰在每個(gè)加密圖像塊中隨機(jī)地選取多個(gè)集合,修改每個(gè)集合嵌入比特?cái)?shù)據(jù)以提高信息的嵌入容量。Li等[10]提出以單個(gè)像素為單位進(jìn)行比特位的翻轉(zhuǎn)嵌入信息,同時(shí)采取隨機(jī)擴(kuò)散策略在多個(gè)像素中隱藏相同的信息,該算法有效地提高了信息的嵌入量。Qin 等[11]提出將加密的圖像塊分為平滑塊和復(fù)雜塊,通過壓縮平滑塊的最低有效位(LSB)獲得信息嵌入空間。李志佳等[12]提出使用同態(tài)加密算法加密原始圖像,對加密的圖像分塊,建立分塊差值直方圖,選取峰值點(diǎn)嵌入機(jī)密信息。該算法實(shí)現(xiàn)了密文域可逆信息隱藏,同時(shí)提高了信息的嵌入容量,但是同態(tài)加密計(jì)算增加了算法的復(fù)雜度。VRAE 類算法總體上是將數(shù)據(jù)嵌入到加密像素指定的后幾位比特位中,能夠獲得較好的解密圖像質(zhì)量,但信息的嵌入量有待提高。RRBE 類算法則是在加密前預(yù)留嵌入空間進(jìn)行機(jī)密信息嵌入。Ma 等[13]提出在圖像加密前使用傳統(tǒng)的RDH方法預(yù)留嵌入空間,圖像加密后進(jìn)行信息嵌入,其算法的最大嵌入率(Maximum Embedding Rate,MER)僅為0.5 bpp。Chen等[14]提出利用重排方式將較高階位平面的相關(guān)比特位聚類,生成相應(yīng)的重排比特流,利用擴(kuò)展游程編碼壓縮比特流騰出嵌入空間,以位替換方式進(jìn)行信息嵌入;但是擴(kuò)展游程編碼并不能提供令人滿意的壓縮率。Yi 等[15]提出根據(jù)圖像塊位平面0 或1 比特位的分布,將圖像塊劃分為好塊或壞塊,壓縮好塊的位平面生成嵌入空間。該算法雖然在一定程度上能夠提高信息的嵌入量,但是嵌入量的大小容易受到圖像位平面0或1 比特位分布的影響,而且為了圖像的可逆恢復(fù),存儲了過多的附屬信息,使得直接解密后圖像的峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)值較低。Li等[16]提出在圖像加密前利用像素的預(yù)測誤差擴(kuò)展預(yù)留嵌入空間,修改加密后圖像的預(yù)測差值直方圖進(jìn)行信息嵌入。該算法由于直方圖峰值間的差值沒有被加密,因此存在一定安全隱患,另外由于峰值點(diǎn)及其附近像素的大量改動使得直接解密后圖像的PSNR 較低。此外,RRBE 類算法的實(shí)現(xiàn)需要圖像所有者預(yù)處理圖像,對圖像所有者有較高的要求。
綜上,目前常用的RDHEI 算法嵌入容量不高的主要原因是:加密后圖像像素沒有足夠的冗余空間,并且由于圖像可逆恢復(fù)的要求引入了過多的附屬參數(shù)以及對圖像進(jìn)行過多的修改,使得解密后的圖像PSNR 值降低?;诖?,本文提出一個(gè)新的RDHEI 方法。首先,對圖像分塊,并以塊為單位加密原始圖像,保留塊中大部分像素高階比特位的相關(guān)性;然后,利用同塊內(nèi)像素的高階位平面冗余,將對應(yīng)的低階位平面數(shù)據(jù)嵌入其中,在低階位平面中騰出大量的可嵌空間。實(shí)驗(yàn)結(jié)果表明該方法可以獲得較大的信息嵌入空間,提高了信息的嵌入率,直接解密的標(biāo)記圖像也有很好的視覺質(zhì)量。
本文方法包括三個(gè)主要階段,即圖像加密、機(jī)密信息嵌入,以及信息提取和圖像恢復(fù),圖1 給出了該方法的框架。首先,原始圖像I被分成不重疊的塊,通過加密密鑰Key1 產(chǎn)生Logistic 映射的混沌序列對圖像子塊內(nèi)的像素進(jìn)行異或加密;然后,使用加密密鑰Key2 完成對圖像塊的位置置亂生成加密圖像,保留了圖像分塊中像素的高階比特位的相關(guān)性,使得圖像塊的高階位平面中存在較大的冗余空間。在機(jī)密信息嵌入過程中,加密的圖像塊依據(jù)規(guī)則劃分成可嵌入塊、不可嵌入塊和輔助塊三種。在可嵌入塊中,將高階位平面的冗余轉(zhuǎn)移到低階位平面中,在低階位平面中生成可嵌空間,嵌入加密的機(jī)密信息,生成標(biāo)記的加密圖像,同時(shí)將必要的附屬參數(shù)存入輔助塊中。接收方接收到標(biāo)記的加密圖像,通過輔助塊的信息,僅使用數(shù)據(jù)隱藏密鑰Kh可提取嵌入的機(jī)密數(shù)據(jù);僅使用加密密鑰可以直接得到在視覺上類似于I的解密圖像;同時(shí)使用加密密鑰和隱藏密鑰時(shí),可以成功提取嵌入的信息,并無損恢復(fù)原始圖像。
圖1 本文方法框架Fig.1 Framework of the proposed method
Logistic 映射是1976 年數(shù)學(xué)生態(tài)學(xué)家梅(R.May)提出的具有重要意義的非線性迭代方程,是用于研究混沌系統(tǒng)經(jīng)典模型,常用于信息安全領(lǐng)域的研究[17]。Logistic 映射的計(jì)算式為:
其中u是系統(tǒng)的控制參數(shù),u取不同值時(shí),式(1)會顯示不同的狀態(tài):當(dāng)3.569 ≤u≤4,系統(tǒng)處于混沌狀態(tài)。本文用控制參數(shù)u和初始值x0作為加密密鑰Key1。
原始圖像I被劃分成不重疊的塊,設(shè)圖像大小為H×W,分塊大小為s×s,則一共有K個(gè)圖像塊,其中。對于能夠完整塊劃分的圖像即mod(H,s)=0且mod(W,s)=0,其中mod 是取模運(yùn)算。按照光柵順序從上到下、從左到右標(biāo)記圖像塊和塊內(nèi)像素的序列號,令Bi為第i個(gè)圖像塊,則1 ≤i≤K;令Pi,j為Bi塊內(nèi)的第j個(gè)像素,則1 ≤j≤M,M=s×s。通過Logistic 的混沌映射生成具有K個(gè)隨機(jī)數(shù)的混沌序列,將每個(gè)隨機(jī)數(shù)和圖像子塊中的像素進(jìn)行異或加密。具體方法如下:迭代式(1)K次,生成隨機(jī)數(shù)組A,根據(jù)式(2)將A數(shù)組元素映射成序列F。
其中:A[i]是數(shù)組A的第i個(gè)元素,F(xiàn)i是F序列的第i個(gè)元素。由于要保留加密域中每個(gè)塊內(nèi)鄰近像素的空間相關(guān)性,所以使用Fi來加密第i個(gè)圖像塊Bi的每個(gè)像素,計(jì)算式如下:
其中:Ei,j是加密后的像素,符號“⊕”代表按位XOR。
為了進(jìn)一步提高圖像的安全性,接著進(jìn)行塊置亂操作。設(shè)置加密密鑰Key2 為隨機(jī)種子,生成1 到K的不重復(fù)的隨機(jī)自然數(shù)序列G,根據(jù)序列G將塊的位置置亂,得到新的塊序列為{BG1,BG2,…,BGk},合成加密圖像Ie。
對于不能完整塊劃分的圖像即:mod(H,s)!=0或mod(W,s)!=0。首先按照從上至下、從左到右統(tǒng)計(jì)不能進(jìn)行塊劃分的行列像素,設(shè)個(gè)數(shù)為L。這些像素只進(jìn)行異或加密,不做位置置亂和信息嵌入處理,然后對剩余行列像素進(jìn)行完整圖像塊劃分。首先利用式(1)、(2)生成具有L+K個(gè)隨機(jī)數(shù)的序列,前L個(gè)隨機(jī)數(shù)和不能進(jìn)行塊劃分的行列像素依次進(jìn)行異或加密,后K個(gè)隨機(jī)數(shù)按照前文描述方法進(jìn)行塊加密,接著利用加密密鑰Key2 完成塊置亂,最后合成加密圖像Ie。
在加密圖像塊中,保留了像素的相關(guān)性,塊內(nèi)的高階位平面中含有較多的冗余空間,利用這些冗余空間嵌入機(jī)密信息。
數(shù)據(jù)隱藏方接收到加密圖像Ie之后,首先將該圖像劃分成不重疊的加密圖像塊Ci(1 ≤i≤K),大小為s×s(與加密時(shí)的塊大小保持一致)。根據(jù)3.2 節(jié)中的算法,圖像像素的冗余被保存在Ie中類型為Ca的可嵌入塊中,因此可以在這些塊中進(jìn)行信息嵌入。
圖像分塊后,冗余部分會出現(xiàn)在部分塊的高階位平面。為了判別圖像塊是否可嵌,首先將每個(gè)圖像塊內(nèi)的像素表示為Xi,j(i表示該像素屬于圖像塊Ci,j表示該像素為圖像塊中的第j個(gè)像素);接著將像素Xi,j分成高階位部分、中階位部分和低階位三部分,計(jì)算式如下:
獲取像素Xi,j的第k位比特值,值為0 或1。
大量實(shí)驗(yàn)證明高階位值不宜超過3,超過3 后會顯著減少可嵌入塊的數(shù)量。依次計(jì)算塊中的每個(gè)像素的高階位部分、中階位部分和低階位部分,當(dāng)塊內(nèi)所有像素的高階位部分相同,則說明該塊具有較高冗余,可以進(jìn)行信息嵌入,標(biāo)記為Ca塊;否則該塊不可用于信息嵌入,標(biāo)記為Cb塊。對于圖像中的Ca塊,根據(jù)式(6)可知像素的高階位部分和低階位部分個(gè)數(shù)相同,因此用像素低階位部分替換對應(yīng)的高階位部分,并將低階位部分置0。該方法本質(zhì)上是將塊內(nèi)像素高階位平面的冗余轉(zhuǎn)移到對應(yīng)的低階位平面上,從而在低階位平面上騰出嵌入空間。像素完成高階位冗余轉(zhuǎn)移后,計(jì)算式如下:
合成的可嵌入像素計(jì)算式如下:
為了圖像的可逆恢復(fù),塊內(nèi)第一個(gè)像素的高階位部分保持不變,用來恢復(fù)整個(gè)圖像塊中所有像素的高階位部分。塊內(nèi)所有像素低階位平面則用于信息嵌入。加密圖像的最大嵌入率(Maximum Embedding Rate,MER)計(jì)算式如下:
其中v為圖像可嵌入塊個(gè)數(shù)。
對于圖像中的不可嵌入塊Cb,在數(shù)據(jù)的嵌入過程中則保持不變,以減少對圖像的改動,保證直接解密后的圖像視覺質(zhì)量。加密圖像的塊類型劃分如表1 所示。
表1 加密圖像塊的類型Tab.1 Types of encrypted image blocks
為了信息的提取和圖像恢復(fù),需要存儲必要的附屬參數(shù)信息,包括位圖MP、分塊大小s和分塊像素的高階位個(gè)數(shù)α。
加密圖像塊分為Ca和Cb兩類,Ca塊用于信息嵌入,Cb塊保持不變,因此需要用位圖記錄各類型塊的位置。首先通過光柵掃描所有的圖像塊,如果為Ca塊,則在位圖對應(yīng)位置1,否則置0,如圖2 所示。
圖2 類型塊的分布圖及相應(yīng)的位圖Fig.2 Type block distribution map and corresponding bitmap
圖2(a)表示圖像中可嵌入塊和不可嵌入塊的分布;圖2(b)表示對應(yīng)的位圖,其中1 表示對應(yīng)位是可嵌入塊,0 表示對應(yīng)位是不可嵌入塊。由于加密圖像塊高階位平面冗余空間的存在,位圖表現(xiàn)出稀疏性,通過壓縮位圖可以顯著減小存儲附屬參數(shù)信息所用的存儲空間。位圖包含很少的0 元素,因此可以通過存儲0 元素的位置和個(gè)數(shù)信息來壓縮整個(gè)位圖。設(shè)e1和e0分別代表位圖中1 元素和0 元素的個(gè)數(shù),由于e0<e1,存儲0元素個(gè)數(shù)需用到的位數(shù),計(jì)算式如下:
使用元組(行,列)記錄少數(shù)像素位置,存儲0 元素的位置信息需用到的位數(shù),計(jì)算式如下:
通過計(jì)算相鄰0 元素的位置差值可以進(jìn)一步減小Llco,設(shè)e0項(xiàng)的位置如下:
第i個(gè)少數(shù)元素的編碼長度減小為:
壓縮后的Llco計(jì)算式如下:
由于所有圖像塊的第一個(gè)像素在整個(gè)嵌入過程中保持不變,因此可以將壓縮的位圖信息的每一位按光柵順序存儲到每個(gè)圖像塊的第一個(gè)像素的最低有效位(LSB),被替換的LSB 形成位流sq,連接在加密的機(jī)密信息前。存儲分塊大小s的值需用4 個(gè)比特位,通過位替換方式存儲在最后一個(gè)像素的低4 位;存儲高階位個(gè)數(shù)α的值需要用3 個(gè)比特位,同樣方式存儲在倒數(shù)第二個(gè)像素的低3 位值;分塊大小最大值設(shè)為16,因此存儲位圖中可嵌入塊個(gè)數(shù)的值需用16 個(gè)比特位,同樣方式存儲在倒數(shù)第三和第四個(gè)像素中。含有最后四個(gè)像素的圖像塊標(biāo)記為塊Cf,用于圖像恢復(fù)。被替換下的原像素比特位形成位流st,將連接在位流sq前。st、sq連同加密數(shù)據(jù)共同存入可嵌入塊的冗余空間中。
在加密圖像信息隱藏算法中,通常密鑰只有幾十比特,數(shù)據(jù)量很小,因此通信雙方可以事先協(xié)商利用特定安全通道進(jìn)行傳輸。根據(jù)圖像的不同處理要求,在特定通道中傳輸指定的密鑰,使得接收方擁有不同的密鑰類型和對應(yīng)的權(quán)限。當(dāng)接收方既擁有數(shù)據(jù)隱藏密鑰又擁有加密密鑰時(shí),可以提取出機(jī)密數(shù)據(jù),并無損恢復(fù)原始圖像;僅擁有數(shù)據(jù)隱藏密鑰時(shí),接收方則只能提取出嵌入的機(jī)密數(shù)據(jù);僅擁有加密密鑰時(shí),接收方則可以獲得輕微失真的原始圖像。
接收方接收到加密的標(biāo)記圖像Iew后,按以下步驟獲取機(jī)密信息:
1)獲取標(biāo)記圖像Iew最后四個(gè)像素的23 位信息,計(jì)算圖像分塊大小s、位平面高階位個(gè)數(shù)α,以及位圖中可嵌入塊的個(gè)數(shù)e0。
2)根據(jù)分塊大小s對標(biāo)記圖像Iew分塊,然后進(jìn)行光柵掃描,根據(jù)可嵌入塊的個(gè)數(shù)e0和式(13)、(14),從前Llco個(gè)塊的第一個(gè)像素的LSB 中獲取可嵌入塊的位置信息,恢復(fù)位圖MP,標(biāo)出圖像中Ca、Cb和Cf塊。
3)依次連接所有可嵌入塊的低階位平面,從中依次分解出23 位的st流,Llco位的sq流,剩余部分則為嵌入的加密機(jī)密數(shù)據(jù)。
4)對獲取的加密的機(jī)密數(shù)據(jù)用隱藏密鑰Kh解密得到原始的機(jī)密信息。
接收方接收到加密的標(biāo)記圖像Iew。
1)獲取標(biāo)記圖像Iew最后四個(gè)像素的位信息,計(jì)算圖像分塊大小s、位平面高階位個(gè)數(shù)α,以及位圖中可嵌入塊的個(gè)數(shù)e0。
2)根據(jù)4.1 節(jié)中的方法,恢復(fù)位圖MP,并標(biāo)出圖像中Ca和Cb及Cf塊,并從所有可嵌入塊的低階位平面中分解出st流、sq流。
3)用st流替換Cf塊中的最后4 個(gè)像素的比特位,用sq流替換前Llco個(gè)塊的第一個(gè)像素的LSB 位。
4)用所有Ca塊第一個(gè)像素的高階位替換同塊內(nèi)其余像素的高階位,恢復(fù)Ca塊內(nèi)像素的高階位平面。
5)根據(jù)加密密鑰Key2 恢復(fù)圖像塊的原始位置,根據(jù)Logistic 映射的加密密鑰Key1 生成原圖加密時(shí)的混沌序列,經(jīng)過式(2)映射后,對塊內(nèi)像素解密,可得帶有嵌入信息的解密圖像。由于嵌入方只在Ca塊高階位平面冗余轉(zhuǎn)移的低階位平面中嵌入數(shù)據(jù),高階位平面得以完全恢復(fù),Cb塊不作嵌入數(shù)據(jù),Cf塊可以完全恢復(fù),因此解密后獲得的帶嵌入信息的圖像有近似原圖的視覺效果。
接收方接收到加密的標(biāo)記圖像Iew。
1)獲取標(biāo)記圖像Iew最后4 個(gè)像素位信息,計(jì)算圖像分塊大小s、位平面高階位個(gè)數(shù)α,以及位圖中可嵌入塊的個(gè)數(shù)e0。
2)根據(jù)4.1 節(jié)中的方法,恢復(fù)位圖MP,標(biāo)出圖像中Ca和Cb及Cf塊,并從所有可嵌入塊的低階位平面中分解出st流、sq流和加密的機(jī)密數(shù)據(jù)。
3)根據(jù)4.1 節(jié)中的方法,利用Kh獲取原始的機(jī)密數(shù)據(jù);由于原Ca塊中像素(第一個(gè)像素除外)高階位是用同一像素對應(yīng)低階位替換的,所以用高階位替換同一像素對應(yīng)低階位,并利用4.2 節(jié)中的方法恢復(fù)所有Ca塊的高階位,可以完全恢復(fù)Ca塊。
4)根據(jù)4.2 節(jié)中的方法可以完全恢復(fù)Cb及Cf塊,并使用加密密鑰解密圖像,可以完全恢復(fù)原始圖像。
實(shí)驗(yàn)環(huán)境為:具有2.6 GHz Intel i5-4200U 處理器,4 GB的個(gè)人計(jì)算機(jī)內(nèi)存,Windows 7 操作系統(tǒng)和Matlab R2016a。
通過香農(nóng)熵和直方圖進(jìn)行加密圖像的安全性分析。加密圖像的熵的計(jì)算式如下:
其中:E是具有256 個(gè)灰度等級的灰度圖像,而p(xi)是灰度等級xi(0 ≤i≤255)的概率。H(E)的最大理論值為8。熵越大,則表示加密的圖像越安全。表2 給出了加密后的6 個(gè)標(biāo)準(zhǔn)灰度圖像的熵,可以發(fā)現(xiàn)所有熵都非常接近最大理論值8,這說明加密圖像是安全的。
表2 加密圖像的熵Tab.2 Entropies of encrypted images
理論上高效的加密方法生成的加密圖像,其直方圖分布均勻,無法通過直方圖的檢測技術(shù)確定原始圖像,從而保證加密圖像的安全性。圖3 給出了6 個(gè)標(biāo)準(zhǔn)圖像加密后的直方圖,可以看到這些直方圖幾乎是均勻分布的。
圖3 加密圖像的直方圖Fig.3 Histograms of encrypted images
設(shè)置塊大小為4,高階平面數(shù)為3,對標(biāo)準(zhǔn)灰度圖像Peppers 進(jìn)行單體測試,各項(xiàng)測試指標(biāo)的結(jié)果如圖4 所示。圖4(a)表示原始圖像;圖4(b)表示不帶任何數(shù)據(jù)的加密圖像;圖4(c)是嵌入的加密圖像,其最大嵌入率計(jì)算為1.79 bpp;圖4(d)表示直接解密的標(biāo)記圖像,通過加密密鑰,可以獲得容量為1.79 bpp 的解密圖像,視覺上與原始圖像I幾乎相同(PSNR=46.87 dB);圖4(e)表示恢復(fù)的圖像,其PSNR 值為無窮大,完全恢復(fù)。
圖4 單個(gè)圖像的測試結(jié)果Fig.4 Single image test results
不同的分塊大小和高階位個(gè)數(shù)會直接影響到可嵌入塊的數(shù)量及塊內(nèi)像素的高階位平面冗余,從而影響圖像的可嵌入容量和直接解密后的圖像視覺質(zhì)量。
選擇不同紋理的6 個(gè)標(biāo)準(zhǔn)灰度圖像對算法進(jìn)行測試。測試中,圖像塊的大小分別設(shè)置為2×2、4×4、6×6 和8×8,依次將圖像塊的高階平面數(shù)設(shè)置為1、2、3。實(shí)驗(yàn)結(jié)果如表3 所示,使用MER 和直接解密標(biāo)記圖像的PSNR 作為評估算法的指標(biāo)。
表3 在不同高階平面數(shù)α和不同分塊大小s下圖像的MER和PSNR值Tab.3 Image MER and PSNR values under different high-order bit-plane numbers α and different block sizes s
表3 結(jié)果表明,隨著圖像紋理復(fù)雜度增強(qiáng),相同參數(shù)條件下圖像的最大嵌入率降低。這是因?yàn)殡S著圖像紋理增強(qiáng),可嵌入塊的個(gè)數(shù)減少,使得嵌入容量降低。
對單個(gè)圖像來說,給定高階位平面?zhèn)€數(shù)α,則圖像分塊s越大,最大嵌入率MER 就越高,直接解密的標(biāo)記圖像PSNR值越小。這是因?yàn)檩^大的分塊大小s可將更多機(jī)密信息嵌入到單個(gè)可嵌入塊中,同時(shí)減小了附屬參數(shù)信息的大??;另一方面,嵌入更多機(jī)密信息將改動更多的圖像部分,使得解密后標(biāo)記圖像的PSNR 值減小。但是需要注意的是,當(dāng)s增大超過4 時(shí),塊內(nèi)像素的相關(guān)性減弱,具有相同高階位個(gè)數(shù)α的像素個(gè)數(shù)減少,從而可嵌入塊的數(shù)量降低,最大嵌入率MER 降低,解密后標(biāo)記圖像的PSNR 值升高。
對于給定分塊大小s,隨著高階平面?zhèn)€數(shù)α的增大,大多數(shù)測試圖像的最大嵌入率MER 逐漸升高,直接解密圖像的PSNR 值逐漸降低,這是因?yàn)殡S著α的增大,一方面是可嵌入塊中的可嵌入比特位數(shù)增加,另一方面可嵌入塊的數(shù)量減少。當(dāng)α小于3 時(shí),大多數(shù)測試圖像的MER 都會逐漸增加。當(dāng)α等于3 時(shí),在大多數(shù)測試圖像中這兩方面的作用達(dá)到平衡,這些圖像的MER 達(dá)到最大值,而此時(shí)PSNR 并沒有太顯著降低。
為了驗(yàn)證本文算法的優(yōu)越性能,將其和文獻(xiàn)[14-16]算法進(jìn)行比較,所有算法的參數(shù)均為最優(yōu)性能下的指標(biāo)值。本文算法α=3,s=4。各個(gè)算法的嵌入率和直接解密圖像的PSNR 值的關(guān)系曲線如圖5 所示。
圖5 不同算法的對比測試結(jié)果Fig.5 Comparison test results of different algorithms
圖5 展示了各個(gè)算法在有效負(fù)載下標(biāo)記的解密圖像的PSNR 值的比較曲線。從圖5 中可以看到,本文算法的最大嵌入率大于所有比較方法,而且在較平滑的圖像Airplane、Lena 上最大嵌入率超過2.0 bpp。這主要是因?yàn)楸疚乃惴ɡ昧烁喔唠A位平面的冗余從而增大了嵌入量。Chen 等[14]通過重排高位平面比特位的方式也獲得了較高的嵌入量。而Yi 等[15]將圖像分為5 種類型塊的壓縮方法,由于附屬參數(shù)信息占用空間較多,影響了信息的嵌入率,從而性能低于本文算法。Li 等[16]利用多輪預(yù)測誤差擴(kuò)展來嵌入數(shù)據(jù),相較于多平面壓縮的方式嵌入量要小得多。另外可以看到,在嵌入率相同的情況下本文算法的PSNR 值也高于文獻(xiàn)[14-16]中算法。這是因?yàn)楸疚乃惴ㄔ谧顑?yōu)參數(shù)條件下,嵌入量和解密標(biāo)記圖像的PSNR 取得平衡;另外是在可嵌入塊的低階位平面中嵌入機(jī)密數(shù)據(jù),其余部分則保持不變,所以在保證嵌入量的同時(shí)具有較好的直接解密圖像的PSNR 值。
針對目前RDHEI 算法無法更有效地從加密圖像中獲得更多嵌入空間的問題,本文提出一種基于高階位平面冗余的可逆信息隱藏方法。在本文方法中,一方面實(shí)現(xiàn)了較大的信息嵌入量;另一方面,即使傳輸過程中圖像遭到非法攻擊、非法篡改的情況,圖像及嵌入信息的安全性仍然能得到保證,即原始圖像不能被識別,嵌入信息不會被泄露。這一點(diǎn)有其廣泛的應(yīng)用價(jià)值,如在醫(yī)學(xué)、軍事領(lǐng)域,首先需要保證的是圖像及嵌入信息的安全性,信息即使被破壞也不能被泄露;其次在醫(yī)學(xué)、軍事領(lǐng)域需要在圖像中嵌入大量的信息。本文方法都可以滿足條件,另外在復(fù)原信息位沒有被篡改的情況下,接收方根據(jù)權(quán)限密鑰仍然可以獲得自己需要的信息。未來在信息防篡改及篡改信息恢復(fù)方面可進(jìn)行進(jìn)一步的研究,以更好地提高圖像的安全性。