楊堯林 和紅杰 陳 帆 原長琦
1(西南交通大學信息科學與技術學院 成都 611756)
2(北京電子技術應用研究所 北京 100091)
(ylyangwr@foxmail.com)
隨著計算機的發(fā)展應用,更多的用戶選擇把數據上傳至云端存儲,云存儲使數據的所有權和管理權分離,使得云存儲中數據安全以及個人隱私保護引起了人們的關注,加密圖像可逆數據隱藏(reversible data hiding in encrypted image,RDH-EI)可為云存儲中圖像數據的安全提供技術支持[1-2].與傳統(tǒng)的明文域可逆數據隱藏不同,RDH-EI首先對圖像進行加密,在加密圖像中實現可逆的數據隱藏.其中,圖像加密有效避免了原始圖像內容的泄露.同時,密文圖像中附加數據的提取可用于圖像真實性認證,來源追蹤及隱私保護等多種應用場景[3-4].
現有RDH-EI可分為2類:加密前預留空間(reserving room before encryption,RRBE)[5-9]和加密后騰出空間(vacating room after encryption,VRAE)[10-18].RRBE-RDHEI可利用明文圖像像素間的相關性提高嵌入容量,但增加了圖像擁有者的操作難度,不僅需要對原始圖像進行加密,還要在加密前執(zhí)行預處理操作,這對于普通用戶來說是難以實現的.而在VRAE-RDHEI中,圖像擁有者只需要執(zhí)行圖像加密即可,減小了圖像擁有者的技術需求.
在已有的VRAE-RDHEI算法中,根據嵌入方法的不同可分為3類:1)采用低位翻轉[10-12],通過翻轉加密圖像像素的最低有效位(least significant bit,LSB)嵌入附加數據.該類算法操作簡單,可獲得較高的直接解密圖像質量,但數據提取與圖像恢復2個步驟不可分離,且圖像恢復階段不能完全可逆.2)采用傳統(tǒng)RDH嵌入附加數據,其中直方圖移位[13-15]應用較廣泛,通過尋找像素值或誤差值的峰值點與零點值,將像素值進行小幅度修改實現信息的嵌入.該類算法能夠實現完全可逆,但嵌入容量相對較小.3)采用編碼無損壓縮,使用編碼表對圖像進行壓縮,從而騰出空間用于嵌入附加數據.該類算法嵌入容量較高,得到多數學者的關注.Yi等人[16]提出一種參數加密域可逆數據隱藏(parametric reversible data hiding in encrypted images,PRDHEI)算法,設計了2種嵌入編碼策略,在嵌入過程中選取嵌入率較高的編碼表進行標記壓縮.在圖像完全恢復的情況下,平均嵌入率達1.19 bpp.為進一步提高嵌入率,Yi等人[17]修改了嵌入過程中使用的編碼表.在二叉樹邏輯結構的基礎上實用化,提出了參數二叉樹標記(parametric binary tree labeling,PBTL)的方法,將加密后圖像的像素根據預測誤差及選取的參數標記為可嵌入像素和不可嵌入像素2種,標記后壓縮的空間可用來嵌入秘密信息.該算法的平均嵌入率可達1.68 bpp,相較于文獻[16]的嵌入率提高0.49 bpp.上述2種方案對可嵌入像素預測誤差的編碼長度是相等的,但對分布不均勻的預測誤差,變長編碼要比定長編碼具有更高的壓縮率.在Fu等人[18]提出的自適應編碼策略算法中,使用預先設定的哈夫曼編碼表對加密后圖像塊的最高有效位(most significant bit,MSB)分類標記,平均嵌入率可達1.81 bpp.該方案中編碼表涵蓋了一個塊中最多存在4種不同MSBs的情況,但對紋理圖像,包含4種MSBs以上的塊數是較多的,將其全部作為不可嵌入塊將會導致嵌入率降低.綜上所述,現有VRAE-RDHEI文獻中使用的編碼表大多是預先設定的,未結合圖像自身的特征,因此根據圖像自身像素值特征選取適合的編碼策略是提高嵌入容量的一種有效解決方案.
提高嵌入容量是已有RDH-EI算法研究的主要內容,同時,加密算法的安全性也逐漸被研究者們關注.上述算法中,文獻[7-12]采用了位異或加密方法,加密后的熵值較高,密文圖像類似隨機噪聲,但加密前后像素位置并未發(fā)生變化,不能抵抗Khelifi[19]提出的唯密文攻擊.為抵抗這類唯密文攻擊算法,多位研究者提出塊置亂及相應改進算法[13-18].在文獻[13]中,采用塊內置亂與塊間置亂,該方法中像素值并未發(fā)生改變,不能抵抗Li等人[20]提出的已知明文攻擊.在文獻[16-17]中,塊間置亂與像素調制后雖然像素的位置與像素值均發(fā)生變化,但塊內像素的相對差值依舊會保留.在文獻[15]中,塊間置亂與塊內異或后由于塊內像素進行異或運算的二進制值序列相同,所以塊內像素的部分相關性將會保留,且在塊間置亂前后,加密圖像塊與原始圖像塊是一一對應的關系.上述加密算法中,原始圖像與加密圖像塊之間存在的關聯性與塊內像素的相關性成為攻擊者破解加密圖像的依據.為提高加密算法的安全性,打亂置亂操作保留的一一對應關系是需要研究的關鍵問題.
為提高算法嵌入容量的同時兼顧加密算法的安全性,本文提出一種基于預測誤差自適應編碼的圖像加密可逆數據隱藏算法.在加密階段,采用誤差維持加密算法,包括塊間置亂、像素調制以及分組置亂3個步驟.與未加入分組置亂的加密算法相比,增加了加密前后圖像的特征值差異塊數,提高了加密圖像的安全性,同時未改變加密圖像的整體預測誤差分布.在嵌入階段,根據加密圖像的預測誤差分布自適應編碼(adaptive coding,AC),生成哈夫曼編碼表后對像素進行標記壓縮,能實現較大的嵌入容量.且哈夫曼編碼具有唯一標識性,能無損提取附加數據與恢復原始圖像,實現完全可逆.
本文算法主要包括3部分:基于誤差維持的圖像加密;基于自適應編碼的信息嵌入;數據提取與圖像恢復.1)基于誤差維持的圖像加密.圖像擁有者利用加密密鑰Kenc對原始圖像Iori執(zhí)行塊間置亂與像素調制,再將非中心像素分組置亂生成加密圖像Ienc.2)基于自適應編碼的信息嵌入.數據隱藏者根據加密圖像Ienc的預測誤差分布選取范圍生成哈夫曼編碼表,對圖像進行標記后嵌入輔助數據與加密的附加數據生成攜密加密圖像Imark.3)數據提取與圖像恢復.圖像接收者根據持有的密鑰可分別獲得原始的附加數據或圖像.下面對算法按上述3個部分進行詳細描述.
在誤差維持加密中,圖像擁有者首先將圖像分為非重疊塊,對所有塊執(zhí)行塊間置亂與像素調制;然后進行分組置亂,通過圖像塊的中心像素值將對應的非中心像素分組后,根據加密密鑰將每組的像素進行置亂.具體操作描述如下:
1)塊間置亂與像素調制
Step1.圖像分塊.將大小為A×B的原始圖像Iori分為m個大小為3×3的非重疊塊2,…,m),其中m=A/3×B/3.
Step2.中間圖像生成.根據加密密鑰Kenc,采用文獻[16]中的方案執(zhí)行塊間置亂與像素調制.若圖像未被整除,則對邊緣區(qū)域的像素進行異或加密,生成中間圖像Iint,其中包含非重疊塊2,…,m).
2)分組置亂
Step2.非中心像素分組置亂.將圖像Iint中心像素值為p的圖像塊中非中心像素分為1組,生成分組序列.基于加密密鑰Kenc產生1~n pnon互不相同的偽隨機自然數序列T p=.使用序列T p置亂對應的分組序列C p,得置亂后的分組序列D p為
Step3.加密圖像生成.將置亂后的分組序列D p依次重新排列到圖像Iint中心像素值為p的圖像塊中,生成加密圖像Ienc.
本文誤差維持加密算法中的分組置亂操作,將中間圖像中心像素值相同塊對應的非中心像素隨機置亂.一方面,將塊間置亂保留的原始圖像塊與加密圖像塊一一對應關系變?yōu)槎鄬Χ嗟年P系,攻擊者難以確定原始圖像塊與加密圖像塊之間的關聯,提高了加密圖像的安全性.另一方面,同一個非中心像素在分組置亂前后所在圖像塊的中心像素值一致,即非中心像素與中心像素的預測誤差值保持不變.
為更直觀地描述加密過程,以圖像大小為9×9,分塊大小為3×3為例描述加密操作,如圖1所示.圖1(a)為原始圖像,可分為4個像素塊,灰色部分為中心像素;圖1(b)為塊置亂圖像,由原始圖像按置亂序列{3,4,2,1}執(zhí)行塊間置亂產生;圖1(c)為中間圖像,通過調制序列{1,2,7,6}對塊置亂圖像執(zhí)行像素調制生成.最后根據中心像素的不同可分為3組,分別為中心像素值為101的非中心像素序列{101,102,104,104,105,106,104,109};中心像素值為105的序列{104,104,102,106,102,106,105,105,108,108,110,115,108,116,105,106};中心像素值為110的序列{110,109,108,108,115,108,109,106}.分別按置亂序列{2,5,8,6,3,1,4,7},{5,16,14,3,9,10,4,15,12,1,6,8,11,2,13},{5,7,3,6,4,2,1,8}執(zhí)行置亂并重新排列后生成如圖1(d)所示的加密圖像.
當數據隱藏者接收到加密圖像后,首先根據預測誤差分布選取范圍對像素進行分類;然后根據各類像素概率生成并保存哈夫曼編碼表;最后使用編碼表對像素進行標記與附加數據嵌入.具體操作描述為:
1)像素分類
Step1.臨界概率值確定.根據同層概率相同的哈夫曼樹中編碼概率與編碼長度的關系確定臨界概率值.假設臨界概率表示為plim,編碼長度為l,則兩者的關系為
對于8 b深度的灰度圖像像素值,哈夫曼編碼長度不能超過8 b,則編碼臨界概率至少滿足plim=0.00390625.
Fig.1 Schematic of encryption process圖1 加密過程示意圖
Step2.預測誤差計算.首先將加密圖像Ienc分為m個大小為3×3的非重疊塊然后將第k個塊的中心像素定義為參考像素,記為其余的8個像素定義為非參考像素,記為(i=1,2,…,8).則第k個塊中第i個非參考像素與參考像素的預測誤差為
Step3.非參考像素分類.通過直方圖統(tǒng)計整幅加密圖像預測誤差值為e(e∈[-255,255])的數量n e,對應概率為p e.由臨界概率值plim確定小于0的預測誤差下限α與大于0的預測誤差上限β.根據α和β將非參考像素分為2類,若第k個塊中第i個非參考像素的預測誤差滿足:
2)編碼表生成與保存
Step1.編碼表的生成.將所有不可嵌入像素歸為一類,則其概率為
可嵌入像素根據預測誤差不同可分λ=β-α+1類,其概率為p e(e=α,α+1,…,β-1,β),則非參考像素共分為λ+1類.根據λ+1類像素的概率生成哈夫曼編碼表,其中,不可嵌入像素對應的編碼為f0,λ類可嵌入像素對應的編碼為f i(i=1,2,…,λ).
若編碼表中存在編碼的長度大于8 b,將預測誤差下限α加1,預測誤差上限β減1,對非參考像素重新分類后再次執(zhí)行本步驟.
Fig.2 Storage form of Huffman coding table圖2 哈夫曼編碼表存儲結構
其中,a,b,c i(i=0,1,…,λ)分別為|α|,|β|,d i對應的二進制序列.哈夫曼編碼存儲長度為η.
Step3.編碼表保存.將哈夫曼編碼表通過位替換存儲在前nref個塊的參考像素中,當η不足8的倍數時,在末尾補充長度為8×nref-η的比特‘0’序列.被替換參考像素的原始比特組合為w.
3)像素標記與附加數據嵌入
Step1.不可嵌入像素標記.通過位替換將不可嵌入像素的前d0位MSBs替換為f0,剩余的8-d0位LSBs保持不變.同時將被替換的原始MSBs組合的比特流記為v,其長度為ξ.
Step2.可嵌入像素標記與附加數據嵌入.用長度為d i(i=1,2,…,λ)的編碼f i替換可嵌入像素的MSBs,剩余的8-d i位LSBs嵌入總隱藏數據φ,生成攜密加密圖像Imark.
在上述總隱藏數據φ中,除加密的附加數據?外,還包括一部分圖像的原始數據作為輔助數據用于圖像恢復.其中,?為原始附加數據ρ通過數據隱藏密鑰Khid異或加密后生成的比特流.輔助數據包括2部分:保存編碼表時被替換的前nref個塊的參考像素原始比特流w;不可嵌入像素的原始d0位MSBs組成的比特流v.將總隱藏數據長度定義為ζ,則本算法的嵌入率rate為
綜上所述,在基于自適應編碼的嵌入過程中,通過加密圖像整體的預測誤差分布特性自適應地生成哈夫曼編碼表,對像素進行標記壓縮騰出空間用于數據嵌入.其中,哈夫曼編碼的唯一標識性成為數據提取與圖像恢復階段對攜密加密圖像中的非參考像素進行分類的依據.
圖像接收者得到攜密加密圖像Imark后,根據持有密鑰的不同,其權限也不同.擁有數據隱藏密鑰Khid,可提取原始的附加數據ρ;擁有加密密鑰Kenc,可恢復原始圖像Iori.
1)附加數據提取
Step1.分類界限提取.將攜密加密圖像Imark分為m個大小為3×3的非重疊塊m),并從圖像塊的參考像素中分別提取8 b恢復預測誤差下限α與預測誤差上限β,確定可嵌入像素類數λ=β-α+1.
Step2.編碼表重建.從I(3)mark與其隨后塊的參考像素中依次提取λ+1個編碼的編碼長度d i(i=0,1,…,λ)與編碼f i,重建哈夫曼編碼表,同時統(tǒng)計存儲編碼表被替代的參考像素個數nref.
Step3.附加數據的提取.根據重建的哈夫曼編碼表與非參考像素的標記位,將非參考像素分為可嵌入像素與不可嵌入像素,對不可嵌入像素,統(tǒng)計其數量n enon,對可嵌入像素,提取除標記位外的8-d i位LSBs,得到總隱藏數據φ.可知,總嵌入數據的前8×nref位為保存編碼表時被替換的參考像素原始比特流w,中間n enon×d0位為不可嵌入像素的前d0位MSBs組成的比特流v,剩余位為加密的附加數據?.最后用數據隱藏密鑰Khid將?進行異或解密可得原始的附加數據ρ.
2)圖像恢復
Step1.加密像素值的恢復.首先,與附加數據提取一致,提取w與v.然后,用w恢復前nref個塊的原始參考像素.非參考像素中,對不可嵌入像素,用v恢復原始像素的前d0位MSBs;對可嵌入像素,由編碼表中編碼與預測誤差的一一對應關系可得出預測誤差值,進而恢復加密圖像Ienc的原始像素值.
Step2.原始圖像的恢復.加密過程具有可逆性,使用加密密鑰Kenc對加密圖像Ienc依次執(zhí)行逆分組置亂、逆像素調制、逆塊間置亂即可恢復原始圖像Iori.
綜上所述,數據提取與圖像恢復階段能夠無損重建哈夫曼編碼表,進而根據所持密鑰無損地提取附加數據或恢復原始圖像.
下面通過實驗來驗證分析本文算法的性能,主要從4個方面:1)誤差維持加密算法分析;2)嵌入容量分析;3)可逆性分析;4)運行時間分析.在實驗過程中選取如圖3所示的大小為512×512的8幅灰度測試圖像,分別為Lena,Jetplane,Barbara,Peppers,Boat,Lake,Crowd,Baboon.同時使用包含1 338幅的UCID[21]與包含10 000幅的BOSSbase[22]這2個圖像庫進行實驗分析,其中,UCID中所有圖像均轉變?yōu)?12×512的灰度圖像.
Fig.3 Test image圖3 測試圖像
誤差維持加密包括塊間置亂、像素調制和分組置亂3部分,其中,分組置亂操作是根據所在塊中心像素值的不同,將非中心像素分組后置亂.該操作能改變非中心像素所在的塊,打亂塊間置亂操作保留的原始圖像與加密圖像中各圖像塊間的對應關系,提高加密算法的安全性.且分組置亂前后非中心像素所在塊的中心像素值相等,故整體的預測誤差分布不變.下面從這2方面對加密算法進行分析測試.
1)整體預測誤差分布
為證明分組置亂是否會造成整體預測誤差分布發(fā)生變化,對分組置亂的原理進行分析.在分組置亂的過程中,所有相同中心像素值所對應的非中心像素分為一組進行置亂,此時即使改變非中心像素的位置,它們所對應的中心像素值依舊保持不變.而預測誤差值是將非中心像素值減去中心像素值,因此只要中心像素值未發(fā)生變化,預測誤差值均保持不變.以圖1(c)(d)為例,在圖1(c)中,中心像素值為105對應的非中心像素為{104,104,102,106,102,106,105,105,108,108,110,115,108,116,105,106},預測誤差為{-1,-1,-3,1,-3,1,0,0,3,3,5,10,3,11,0,1}.而在圖1(d)中,中心像素值為105對應的非中心像素預測誤差為{-3,1,11,-3,0,3,3,-3,0,10,-1,1,0,5,-1,3},可以看出,圖1(c)中間圖像與圖1(d)加密圖像的預測誤差分布一致.
以Lena圖像為例,統(tǒng)計有無分組置亂加密圖像(中間圖像與加密圖像)的預測誤差分布,結果如圖4所示.可以看出,兩者的預測誤差分布相同,說明加入分組置亂后并未改變整體的預測誤差分布,即不會影響圖像的嵌入容量.
Fig.4 Prediction error distribution with or without group scrambling圖4 有無分組置亂的預測誤差分布
2)加密算法安全性分析
為評價加密圖像的安全性,定義原始圖像與加密圖像的特征值差異塊數作為衡量指標,其中,圖像塊的特征值是該塊所有的非中心像素與中心像素差值絕對值的總和.當原始圖像與加密圖像的特征值差異塊數越多時,表明加密圖像的安全性越高.計算指標的具體操作為:
1)計算圖像塊特征值,定義第k個塊的特征值為8個非中心像素的預測誤差絕對值總和
2)通過直方圖統(tǒng)計原始圖像、加密圖像中圖像塊特征值為pe的數量.由于非參考像素的預測誤差值e∈[-255,255],得pe的取值范圍為
3)統(tǒng)計原始圖像與加密圖像之間的特征值差異塊數dif:
為驗證本文加密算法的安全性,以加入分組置亂的加密圖像與未加入分組置亂的中間圖像進行對比.
首先,以圖1為例,圖1(a)中原始圖像各塊的特征值分別為{36,17,27,10},圖1(c)中間圖像各塊的特征值分別為{27,10,17,36},圖1(d)加密圖像各塊的特征值分別為{27,27,17,21}.此時原始圖像與中間圖像特征值差異塊數為0,塊間置亂序列能夠被唯一確定,而原始圖像與加入了分組置亂加密圖像的特征值差異數為2,存在一半的塊無法確定對應關系,因此加入分組置亂能提高加密圖像的安全性.
然后,以8幅測試圖像為例,統(tǒng)計原始圖像與中間圖像的特征差異塊數difoi,原始圖像與加密圖像的特征差異塊數difoe,結果如表1所示.可以看出,difoe相較于difoi增加了3~4倍,即加入了分組置亂后的加密圖像與原始圖像的特征值差異塊數較多,難以確定原始與加密圖像中圖像塊的對應關系,加密圖像的安全性得到提高.
Table 1 Comparison of Eigenvalue Difference Blocks表1 特征值差異塊數對比
下面從密鑰空間的角度對本文加密算法的安全性進行分析.假設圖像大小為A×B且分塊大小為3×3,則塊間置亂的密鑰空間ψ1為
像素調制的密鑰空間ψ2為
像素調制后圖像的像素值近似均勻分布,故分組置亂的密鑰空間ψ3為
本文加密算法的密鑰空間為ψ=ψ1×ψ2×ψ3.當圖像大小為512×512且分塊為3×3時,可能生成28900!×25628900×(903!)256種不同的加密圖像.在這種情況下,若沒有加密密鑰,攻擊者很難將加密圖像進行恢復.
綜上所述,誤差維持加密算法中,在加入分組置亂后未改變圖像整體預測誤差分布,但增加了加密圖像與原始圖像的特征值差異塊數,提高了加密圖像的安全性.
由RDH-EI算法易知,總嵌入容量與壓縮率正相關,即壓縮率越高,總嵌入容量越高,嵌入率也就越高.以8幅測試圖像為例,將文獻[17]的PBTL在最大嵌入容量時的相關數據與本文進行對比,結果如表2所示.其中,ζ為總隱藏數據的長度,即總嵌入容量;ξ為不可嵌入像素原始MSBs比特流的長度,η為哈夫曼編碼表存儲結構的長度,ξ與η之和為輔助數據的總長度;γ為附加數據的長度,即凈嵌入容量;根據式(6)計算得到圖像的嵌入率rate.分析Lena圖像的測試數據可知,本文算法相較于PBTL,ζ提高99.89 Kb,ξ提高7 713 b,η提 高286 b,γ提高92.07 Kb,嵌入率rate提高0.36 bpp.統(tǒng)計8幅測試圖像的平均值,本文算法的ζ提高70.27 Kb,ξ降低14.71 Kb,η提高364 b,γ提高84.62 Kb,嵌入率rate提高0.33 bpp.
Table 2 Comparison of the Embedding Capacity and Auxiliary Data Between the Algorithm of Ref[17]and Our Algorithm表2 文獻[17]與本文算法的嵌入容量與輔助數據對比
為進一步驗證本算法的嵌入容量優(yōu)勢,選取3篇同類文獻(VRAE-RDHEI)進行統(tǒng)計對比,包括Yi等人[16]的PRDHEI算法、Yi等人[17]的PBTL算法和Fu等人[18]的自適應編碼算法.其中,文獻[16]采用算法完全可逆時的嵌入容量;文獻[17]選取測試圖像的最大嵌入容量;文獻[18]設定分塊大小為4×4、MSB位數H=5、閾值T=4時的嵌入容量.以8幅測試圖像為例,對比文獻與本文算法最大嵌入容量如表3所示.分析表3數據可知,本文的嵌入容量均高于現有文獻.結合表2分析,對較平滑的Jetplane圖像,預測誤差分布相對集中,壓縮率較高,嵌入率相較3篇對比文獻分別提高了1.324 bpp,0.408 bpp,0.406 bpp;對于較紋理的Baboon圖像,預測誤差分布較均勻,壓縮率較低,相較對比文獻提升較少,分別為0.853 bpp,0.130 bpp,0.391 bpp.對8幅測試圖像的嵌入率計算平均值可得,本文算法的平均嵌入率相較對比文獻分別提高了1.262 bpp,0.330 bpp,0.364 bpp.
Table 3 Comparison of Maximum Embedding Rate表3 最大嵌入率對比 bpp
為更好地說明本文算法的嵌入率高于現有算法,對UCID的1 338幅圖像與BOSSbase的10 000幅圖像分別測試,計算每個圖像庫的平均值作為算法的平均嵌入率,得到本文與文獻[16-18]在2個圖像庫的平均嵌入率如表4所示.為方便測試,文獻[16]設定分塊大小為3×3,α=5,β=2時的嵌入容量作為最大嵌入容量.通過對比表4數據可知,對UCID圖像庫,本文的平均嵌入率相較于對比文獻分別提高1.115 bpp,0.626 bpp,0.492 bpp.對BOSSbase圖像庫,分別提高1.251 bpp,0.881 bpp,0.662 bpp.
Table 4 Comparison of Average Embedding Rate of Database表4 圖像庫平均嵌入率對比 bpp
為可視化本文與對比文獻在嵌入容量上的對比情況,從UCID與BOSSbase數據庫中分別選取前200幅圖像進行測試,結果如圖5所示.可以看出,本文算法所得到的嵌入率要高于3篇對比文獻.在UCID的200幅圖像中,本文算法的平均嵌入率相較于文獻[16-18]分別 提 高1.24 bpp,0.45 bpp,0.46 bpp;在BOSSbase的200幅圖像中,本文算法的平均嵌入率分別提高1.24 bpp,0.71 bpp,0.58 bpp.
Fig.5 Comparison of the embedding rate between our algorithm and three state-of-the-art algorithms圖5 本文算法與3篇現有算法的嵌入率對比
為對比分析本文AC方案與現有騰挪空間方法的性能,本文新增加2篇文獻[7-8]RRBE-RDHEI對比分析.文獻[7-8]均采用中值邊緣檢測(median edge detection,MED)方法預測,騰挪空間方法分別為提高的參數二叉樹標記的可逆數據隱藏方案(improved reversible data hiding scheme in encrypted images using parametric binary tree labeling,IPBTL)和哈夫曼編碼標記(Huffman coding labeling,HVLCL).在實驗中,為公平起見,本文采用相同的MED預測方法得到預測圖像,并按照文獻[7]對算法的加密階段進行調整.調整后算法中生成含標記加密圖像的步驟描述為:1)生成預測誤差分布圖.將原始圖像第1行與第1列作為參考像素進行MED預測生成預測誤差分布圖.2)圖像加密.對原始圖像進行異或加密生成加密圖像.3)像素分組.結合本文的臨界概率值與預測誤差分布圖,將非參考像素分為可嵌入像素與不可嵌入像素.4)像素標記.由本文的AC方案生成哈夫曼編碼表,并構造出哈夫曼編碼的存儲結構自左至右保存到加密圖像的第1行參考像素中.結合預測誤差分布圖對加密圖像進行標記,將加密圖像原始參考像素比特流及不可嵌入像素被替換的原始比特流嵌入可嵌入像素壓縮出的空間,生成含標記的加密圖像.最終,剩余空間可被數據隱藏者用于嵌入附加數據.
然后,分別使用IPBTL[7]、HVLCL[8]和本文的調整算法得到相應的最大嵌入容量,其中,IPBTL[7]設定α=5,β=3.8幅測試圖像的對比結果如表5所示.以Lena圖像為例,本文AC相較于IPBTL的總嵌入容量提高167.34 Kb,輔助數據提高17.24 Kb,凈嵌入容量提高150.10 Kb,嵌入率提高0.587 bpp;相較于HVLCL的總嵌入容量降低543.00 Kb,輔助數據降低718.00 Kb,凈嵌入容量提高175.01 Kb,嵌入率提高0.683 bpp.同理,計算8幅圖像對比結果求取平均值可得,IPBTL的平均嵌入率為2.256 bpp,HVLCL的平均嵌入率為2.284 bpp,本文AC方案的平均嵌入率為2.842 bpp,相較于IPBTL和HVLCL分別提高0.586 bpp與0.558 bpp.
Table 5 RRBE-RDHEI Scheme Comparison of Test Image表5 測試圖像的RRBE-RDHEI方案對比
為進一步說明本文AC方案優(yōu)于現有的IPBTL[7]與HVLCL[8],以UCID與BOSSbase兩個圖像庫為例進行實驗,結果如表6所示.可以看出,在相同預測方法的基礎上,本文的AC方案具有最高的嵌入容量,相較于IPBTL[7]提高1.11 bpp以上,相較于HVLCL[8]提高0.51 bpp以上.
Table 6 RRBE-RDHEI Scheme Comparison of Database表6 圖像庫的RRBE-RDHEI方案對比 bpp
本文算法中,采用哈夫曼編碼對像素進行標記,基于哈夫曼編碼的唯一標識性,能夠實現原始圖像的可逆恢復.圖6顯示了Lena圖像在本算法中的仿真結果.其中圖6(a)為原始的Lena圖像,圖6(b)為加密圖像,圖6(c)為攜密加密圖像,圖6(d)為恢復圖像.使用峰值信噪比(peak signal-to-noise ratio,PSNR)與結構相似性(structural similarity,SSIM)作為評測算法的可逆性的指標,則恢復圖像的PSNR為∞,SSIM為1,本文算法實現完全可逆.
Fig.6 Simulation results of Lena圖6 Lena圖像仿真結果
為進一步驗證算法的可逆性,測試2個圖像庫的相關指標,如表7所示.可以看出,本算法在最大、最小嵌入率的圖像中,以及圖像庫的平均情況下,恢復圖像的PSNR均趨近于無窮,SSIM均為1,說明可以實現完全可逆.且本算法在2個圖像庫中的最高嵌入率可達5 bpp以上,平均嵌入率可達2.3 bpp以上.綜上,本算法在實現高嵌入容量的同時能完全可逆恢復原始圖像.
Table 7 Test Results of Database表7 圖像庫測試結果
RDH-EI算法主要包括4個階段:圖像加密、數據嵌入、數據提取和圖像恢復,其中,圖像所有者用戶主要執(zhí)行圖像加密算法,因此加密性能直接影響用戶的體驗.下面對本文加密算法的運行時間分析,并選擇5篇文獻作對比:文獻[7]的異或加密;文獻[13]的塊間置亂與塊內置亂加密;文獻[17]的塊間置亂與像素調制加密;文獻[15]的塊間置亂與塊內異或加密;文獻[18]的塊間置亂、塊內置亂與塊內異或加密.
時間復雜度上分析說明:當圖像大小為A×B且分塊大小為s×s時,異或加密、塊內異或、塊內置亂與像素調制對所有像素執(zhí)行了一次操作,時間復雜度為O(A×B),塊間置亂的操作以塊為單位進行,時間復雜度為O(A×B/s2),本文分組置亂操作中除參考像素外的其余像素均進行置亂,時間復雜度為(s2-1)/s2×O(A×B).
對各種加密算法進行實驗對比,實驗環(huán)境為:Windows 10操作系統(tǒng)(企業(yè)版2016)、MATLAB 2015a;硬件配置為Intel?CoreTMi5-6200U CPU@2.30 GHz 2.40 GHz,4.00 GB內存(3.89 GB可用),64位操作系統(tǒng)的筆記本電腦.
實驗測試圖像:大小為256×256,512×512,1024×1024的圖像;分塊大小為2×2及3×3.運行時間統(tǒng)計10次求取平均值,結果如表8所示.可以看出,本文加密算法在提高算法安全性前提下,圖像大小為512×512且分塊大小為3×3時的運行時間為1.28 s,在可接受范圍內.
Table 8 Comparison of Running Time of Encryption Algorithms表8 加密算法運行時間對比 s
本文提出一種基于預測誤差自適應編碼的圖像加密可逆數據隱藏算法.誤差維持圖像加密算法打亂了塊間置亂操作保留的對應關系,提高了加密圖像的安全性.同時保留整體預測誤差的分布,不會降低嵌入算法的性能.數據可逆嵌入階段,利用圖像的預測誤差分布生成哈夫曼編碼表用于自身標記壓縮,相較于現有預先設定編碼表或定長編碼的方案具有更高的壓縮性能,實現了更高的嵌入容量,以UCID圖像庫為例,平均嵌入率可達2.306 bpp.后續(xù)工作將從更高效的臨界概率方案設計、圖像加密算法安全性分析、算法時間復雜度優(yōu)化等方面展開.