發布時間:2022-04-14所屬分類:計算機職稱論文瀏覽:1次
摘 要: 摘 要: 目的 密文域可逆信息隱藏是一種可以在加密圖像中嵌入秘密信息、保證秘密信息可以無錯提取以及明文圖像可以無損恢復的技術,越來越受到研究者們的關注,并廣泛應用于云服務器端的用戶隱私保護。 針對密文域可逆信息隱藏算法中嵌入率不高的問題,提出一種聯合定長編
摘 要: 目的 密文域可逆信息隱藏是一種可以在加密圖像中嵌入秘密信息、保證秘密信息可以無錯提取以及明文圖像可以無損恢復的技術,越來越受到研究者們的關注,并廣泛應用于云服務器端的用戶隱私保護。 針對密文域可逆信息隱藏算法中嵌入率不高的問題,提出一種聯合定長編碼和哈夫曼編碼的密文域可逆信息隱藏算法。方法 使用定長編碼與哈夫曼編碼相結合的分組編碼方式對原始明文圖像高位平面進行壓縮,通過重排列將空出空間排放在低位平面中,并使用流密碼加密重排后的圖像。 然后將秘密信息嵌入密文圖像低位平面的空出空間中。 合法接收方可分離地實現秘密信息的無錯提取以及原始明文圖像的無損恢復。 結果 實驗結果表明,所提算法的嵌入率在 UCID(an uncompressed color image database)、BOSSBase(Break Our Steganographic System)和 BOWS-2 (Break Our Watermarking System 2nd)這 3 個數據集上達到 2. 123 4 bit / 像素、2. 410 7 bit / 像素和 2. 380 3 bit / 像素, 分別比同類算法高出 0. 246 6 bit / 像素、0. 088 1 bit / 像素和0. 135 6 bit / 像素。 結論 所提算法利用自然圖像相鄰像素間的相關性,對具有比特連續性的高位平面進行編碼、壓縮,從而為秘密信息的嵌入騰出更多空間,提升了嵌入率。
關鍵詞:可逆信息隱藏;密文域;定長編碼;哈夫曼編碼;分離的
0 引 言
數字圖像可逆信息隱藏( reversible data hiding, RDH) 是一種將秘密信息嵌入圖像,接收方可以根據 密 鑰 提 取 秘 密 信 息 并 恢 復 原 始 圖 像 的 技 術 (Zhang,2013;王繼林 等,2018)。 對于軍事、醫療和法律等極為重視數據安全的領域,RDH 技術至關重要。 隨著云存儲和云計算技術的發展,大量私密數據被上傳并存儲在服務器端。 為了保護用戶隱私, 在用戶數據上傳服務器之前,需要進行加密處理。由此,密文域的可逆信息隱藏(reversible data hiding in encrypted images,RDHEI)技術受到了廣泛關注。 RDHEI 技術具體包含 3 方面:內容擁有者、信息隱藏者和接收者。 內容擁有者即原始圖像所有者在將明文圖像發送到云端之前對其進行加密。 信息隱藏者即云管理者在不知道圖像的原始內容或用于加密圖像的密鑰的情況下,可以在加密的圖像中嵌入秘密信息。 接收者可以根據加密密鑰和隱藏密鑰完全恢復原始圖像并無誤提取秘密信息。
一些 RDHEI 技術中,接收方的秘密信息提取與原始圖像的恢復是同時進行的( Zhang,2011;Zhou 等,2016),應用比較局限。 研究者提出分離的密文域可逆信息隱藏算法,實現了可分離的信息提取和圖像恢復,對于用戶隱私保護和云數據安全與管理具有重大意義。 RDHEI 技術雖然保證了圖像的安全性,但加密導致圖像的冗余度降低,其載荷量要低于明文域的 RDH 技術。 目前的可分離 RDHEI 技術關注如何更大程度壓縮明文圖像或密文圖像,根據壓縮空間在信息隱藏過程中出現的次序, 可將 RDHEI 技術分為 3 類。
第 1 類 RDHEI 技術是在圖像加密之后騰出空間(vacating room after encryption, VRAE),即直接對密文圖像進行壓縮以嵌入秘密信息。 這種方法保證了內容擁有者和數據隱藏者功能相分離,應用比較廣泛,但由于密文圖像的冗余度低,很難獲得較大容量的空余空間,導致嵌入率比較低。 Zhang(2012) 通過犧牲密文圖像的低位平面來嵌入輔助信息和秘密信息,實現了可分離的信息提取和原始圖像恢復。 Qin 等人(2018)根據密文圖像各分塊的平滑程度來使用不同的壓縮方法空出空間。 Qin 等人(2019)通過位平面、塊和像素置亂的方法對明文圖像加密,增強了圖像的安全性,并用稀疏矩陣編碼的方法對密文圖像編碼,取得了不錯的信息嵌入率。 王繼軍等人(2020)通過構造遍歷矩陣對明文圖像進行加密, 對密文圖像計算高質量插值圖像對應的期望插值, 并構造拋物線引導秘密信息嵌入,保證了載密圖像的高質量,同時獲得了較高嵌入率。
第 2 類是在加密的同時騰出空間(vacating room by encryption, VRBE)。 通過設計特殊加密方法(如同態加密),使明文圖像加密后仍能保持圖像的部分區域相關性,從而使一些高效的 RDH 方法能夠直接用在密文圖像上。 項世軍等人(2016) 使用同態加密的方式對明文圖像加密,在保證圖像安全性的同時保持了密文圖像的部分區域相關性。 Xiao 等人(2017)在同態密文圖像上使用像素值排序,獲得了較好的性能。 Huang 等人(2016)對明文圖像中每個分塊使用同一個字節的加密密鑰,即每一分塊中的所有像素均采用相同的加密密鑰,以此來保證密文圖像的各分塊中仍能保持區域相關性。 Yi 和 Zhou(2019)提出了一種參數二叉樹標記算法,充分利用圖像分塊內的局部相關性,取得了較高的嵌入率。 Fu 等人(2019)使用塊置換和流加密的方式加密圖像,保留了各分塊的冗余度,數據隱藏者使用哈夫曼編碼壓縮密文圖像高位平面,進一步提升了信息嵌入率。
第 3 類是在加密之前預留空間( reserving room before encryption, RRBE)。 由內容擁有者對明文圖像進行壓縮,騰出空間后再進行加密,這種方法充分利用了明文圖像的空間相關性, 極大地提高了 RDHEI 技術的嵌入率。 Ma 等人(2013)將明文圖像各分塊分為平滑類和非平滑類,將 RDH 算法用于平滑的塊,空出的空間用非平滑塊的低位平面填充,非平滑塊空出的空間用于嵌入秘密信息。 Yi 和 Zhou (2017)在位平面分塊中的 0 或 1 的個數較少的時候,只保存該分塊的類別和其中 0 或 1 的個數信息, 空余空間用于嵌入秘密信息。 袁源等人(2019) 在 Yi 和 Zhou(2017) 的基礎上,充分利用了相鄰位平面之間的相關性,通過相鄰位平面的異或操作來減少其冗余度,得到了較大的嵌入空間。 還有不少算法均采用像素預測和存儲預測誤差的方法空出空間。 Puteaux 和 Puech(2018a)對明文圖像最高位平面進行預測,嵌入率不超過 1 bit / 像素。 Puyang 等人(2018)在 Puteaux 和 Puech(2018a)的基礎之上預測兩個高位平面,將嵌入率提升到 1. 3 bit / 像素左右。 Puteaux 和 Puech(2018b)進一步充分利用明文圖像的相關性,預測所有位平面,將嵌入率提升到 1. 8 bit / 像素左右。 Wu 等人(2020)基于 Yi 和 Zhou (2019)的參數二叉樹標記算法,將其應用在整個圖像上,充分利用了明文圖像的相關性,較大程度提升了信息嵌入率。 Yin 等人(2020)使用 MED(median edge detector)方法對像素進行預測,并使用哈夫曼編碼記錄預測值與原始值出現差異的最高位平面位置,空出了較大空間。 Chen 和 Chang(2019)利用擴展的行程編碼對明文圖像的前 5 個高位平面進行壓縮,并通過位平面重排列將空出的空間排放在 3 個低位平面中,分離的實現了信息無錯提取與原始圖像無損恢復,并取得了較高的嵌入率。
本文基于 Chen 和 Chang(2019)提出了一種定長編碼和哈夫曼編碼相結合的高位平面編碼方案, 使用哈夫曼編碼代替 Chen 和 Chang(2019)中擴展行程編碼的定長碼字編碼,同時變長碼字編碼也不再使用其長度商和余數的組合,而是使用定長編碼。基于該編碼方案設計出一種 RRBE 的 RDHEI 算法。提取原始圖像的高位平面并將其分塊,提取出每一分塊的比特流。 根據高位平面比特流中相同比特的長度進行編碼:對于相同比特長度較短的比特串進行哈夫曼編碼;對于相同比特長度較長的比特串進行定長編碼,將圖像低位平面的比特流填充到高位平面壓縮后的空出空間中。 然后對圖像進行加密, 并將秘密信息根據隱藏密鑰嵌入密文圖像騰空的低位平面中。 在接收方可以僅利用隱藏密鑰提取載密圖像低位平面中的信息并解密成原始秘密信息,也可以僅使用 圖 像 加 密 密 鑰 恢 復 原 始 明 文圖像。
1 聯合編碼
對于灰度圖像的 8 個位平面,高位平面代表圖像的輪廓特征,體現著圖像的區域相關性,所以明文圖像的高位平面相鄰比特相關性很強(如圖 1 位平面 8 所示)。 相比之下,低位平面對像素值的影響較小,其隨機性強(如圖 1 位平面 1 所示),若對其進行編碼壓縮,不僅不能獲得較大的壓縮空間,還會增加過多的額外比特。 所以本文算法只對前 5 個高位平面進行壓縮,而后 3 個低位平面不做壓縮,對各高位平面中相同比特較長的連續比特串進行定長編碼,對相同比特長度較短的比特串進行哈夫曼編碼。由于自然圖像高位平面的空間相關性,由高位平面掃描而成的比特流大多較為連續,上述組合編碼能夠充分利用這個特性,對高位平面比特流進行壓縮能夠騰出較大的空間。
1. 1 分塊掃描
對高位平面進行分塊,可以充分利用圖像的局部相關性,提取出更為連續的比特串。 本文算法采用了 Chen 和 Chang(2019)中(如表 1 所示)的 4 種分塊掃描方式,將位平面轉換成比特流。
如圖 2(a)所示,選取一個 4 × 4 的高位平面,塊大小為 2 × 2 ,圖 2(b)為表 1 中 4 種掃描方式得到的對應比特流。
1. 2 編碼方案
為了充分利用掃描得到的比特流的比特連續性,設計了一種聯合編碼方案:短比特串的哈夫曼編碼與長比特串的定長編碼相結合。
1. 2. 1 短比特串的哈夫曼編碼
用 Ls 來表示短比特串的長度,當比特流中相同比特的長度 L 小于 Ls 時,繼續選取后 Ls - L 位比特構成一個長度為 Ls 的比特串。 當比特流末尾的串長度不足 Ls - L 時,通過補 0 將其擴展為長度為 Ls 的比特串。 統計高位平面中短比特串出現的概率, 使用哈夫曼算法對該類短比特串進行編碼,并在碼字前添加前綴(flag = 1)組成短比特串的編碼,其中前綴 flag = 1 用來表示該組編碼屬于短比特串編碼。
哈夫曼算法根據短比特串所出現的概率對其進行變長編碼,由此構造出一個平均編碼長度最短的編碼表。 如短比特串長度為 2,有 00、01、10、11 共 4 種串,若其出現的概率依次為 0. 1、0. 1、0. 3、0. 5,根據哈夫曼編碼,出現概率越大的比特串采用越短的碼字,編碼如圖 3 所示。 這 4 種比特串分別對應碼字 110、111、10、0,該編碼表的平均編碼長度為 1. 7, 小于原始的編碼長度 2。
在圖 1 所示的位平面中,選取 Ls = 3 ,統計前 5個高位平面中長度為 3 的短比特串所出現的概率, 其中 000 和 111 視為長比特串,將在定長編碼中介紹。 表 2 為其短比特串對應概率和哈夫曼編碼。 哈夫曼編碼屬于前綴編碼,在解碼過程中可以按比特流順序掃描,當遇到前綴 flag = 1 時,表明該組編碼為短比特串的哈夫曼編碼,此時根據哈夫曼編碼表依次掃描,直到與編碼表中某一碼字完全匹配時停止,該碼字對應的短比特串即為原始比特串。
1. 2. 2 長比特串的定長編碼
當相同比特的長度 L 大于等于 Ls 時,對該連續比特串用定長編碼,如圖 4 所示。 flag 表示編碼的類別,這里 flag = 0 表示該組為長比特串的定長編碼,tail 表示比特串為連續的 0 或 1。 中間 Lfix 位用來表示比特串長度 L 的二進制碼,當 log2 L 超過 Lfix 時使用多組編碼。 如 L = 40 = (101000)2 , Lfix = 4 時,使用 log2 L / Lfix = 2 組編碼,將 L 的二進制長度擴展為 2 × Lfix = 8 位 (00101000)2 ,第 1 組中間 Lfix 位為0010,第2 組中間 Lfix 位為1000,兩組 flag、tail 均相同。 解碼時根據相鄰組的 flag、tail 是否相同來確定是否表示同一比特串,將表示同一比特串的相鄰分組中間四位拼接起來,即為該串長度 L 的二進制碼。
圖 5 展示了圖 1 中位平面 4 長度為 64 的比特流的編碼過程(其中短比特串的哈夫曼編碼表由表 2 所示)。
2 聯合編碼的 RDHEI 算法
本文提出的聯合定長編碼和哈夫曼編碼的密文域可逆信息 隱 藏 算 法 結 構 如 圖 6 所 示。 根 據 RDHEI 技術中的 3 方分為 3 部分,高位平面壓縮與圖像加密、信息隱藏、信息提取和圖像恢復。 原始圖像所有者對高位平面采用分塊掃描得到比特流,對比特流中連續長比特串進行定長編碼,對短比特串進行哈夫曼編碼,從而騰出較大空間,通過重排列將空出空間排放在低位平面中,并使用流密碼加密重排后的圖像。 信息隱藏者利用隱藏密鑰將秘密信息嵌入密文圖像低位平面已空出的空間中。 在接收方,可以通過隱藏密鑰進行秘密信息提取,通過加密密鑰對原始明文圖像進行無損恢復。
2. 1 高位平面壓縮與重排
本文算法中的編碼方案針對前 5 個高位平面進行編碼壓縮,在隨機性強的低位平面編碼壓縮率較低,且會增加過多的額外比特,故后 3 個低位平面不做編碼處理。 壓縮后的位平面重排列基于 Chen 等人(2019)的重排列方案,添加了輔助信息 Lfix 和 Ls 以及哈夫曼編碼表信息。 圖 7 詳細給出了對圖 1 中位平面壓縮編碼和重排列的具體過程。 首先在最高位平面(位平面 8)的開始位置存儲輔助信息,包括塊大小 ( 4 位)、 壓 縮 的 位 平 面 數 量 ( 3 位)、 Lfix (3 位)、 Ls (3 位)、哈夫曼編碼表(29 位)。 其中哈夫曼編碼表按照短比特串依次存儲碼字,以 011110 為分隔符(在圖 7 中,為更好展示,使用更短且與碼字無沖突的 0110 為分隔符),各碼字中每連續 3 個 1 后添加一個 0,從而防止碼字與分隔符沖突,解碼時依次尋找分隔符,分隔符之間的比特串即為對應短比特串的碼字,通過刪去各碼字中 3 個連續 1 后的 0 得到正確的碼字。 所有經過壓縮的高位平面, 均需兩個比特存儲該位平面的掃描類型(Type1:00, Type2:01, Type3:10, Type4:11),用 log2 (mn) = 6 位比特( m = 8,n = 8 為原始圖像的尺寸)表示該高位平面壓縮后的比特流長度 Lc ,接著后 Lc 位比特存儲該高位平面壓縮后的比特流。 壓縮后的高位平面剩余的比特位則用低位平面填充。 在最低位平面 (位平面 1)中用 log2 (mn) + 2 = 8 位表示空出的空間總大小 Lv ,后 Lv - (log2 (mn) + 2) 位(以位平面 1、2、3 的順序依次計數)用來嵌入秘密信息。
2. 2 圖像加密
經過上述壓縮和重排后的位平面比特表示為Ii,j,k , i,j 表示位平面的第 i 行第 j 列, k 表示第 k 個位平面,使用流密碼對重排后的圖像進行加密,用加密密鑰 Ken產生一個隨機矩陣 Em×n , m,n 為原始圖像的尺寸。
2. 3 信息嵌入
壓縮后的圖像經重排列后,空出空間大小信息和空出空間在圖像低位平面中,如圖 7 所示,在圖像加密過程中空出空間大小信息不經過加密。在信息嵌入過程中,首先根據最低位平面中空出空間大小信息計算出用于嵌入秘密信息的空間, 然后使用隱 藏 密 鑰 Kh 將 秘 密 信 息 嵌 入 空 出 空間中。
2. 4 信息提取與圖像恢復
當接收方擁有隱藏密鑰 Kh 時,可以直接從載密圖像的最低位平面中提取得到空出空間的總大小 Lv ,低位平面后 Lv - (log2 (mn) + 2) 位(以位平面 1、2、3 的順序依次計數)即為嵌入的秘密信息,然后通過 Kh 解密得到原始秘密信息,從而不需要對載密圖像進行解密就可提取出秘密信息。
當接收方擁有加密密鑰 Ken時,可以恢復出加密之前的原始明文圖像。 首先通過加密密鑰生成隨機矩陣 Em×n ,與載密圖像做按位異或操作,提取出最高位平面中的塊大小、壓縮位平面數量、定長編碼長度、短比特串長度以及哈夫曼編碼表等輔助信息。根據各高位平面中壓縮串長度提取位平面的壓縮串,即壓縮后的比特流,對其解碼還原原始高位平面,將高位平面中填充的低位平面還原,從而得到原始圖像的所有位平面,即可恢復原始明文圖像。
3 實驗結果與分析
密文域可逆信息隱藏算法的性能可以從有效載荷、錯誤提取的比特數和重構后的圖像質量來評估, 而一般算法都能滿足秘密信息的無錯提取和原始明文圖像的無損恢復,因此有效載荷是密文域可逆信息隱藏的關鍵評價指標。 為了驗證本文算法的有效性,實驗選取了 5 幅標準測試圖像進行性能測試,如圖 8 所示。 同時測試了 UCID(an uncompressed color image database)( Schaefer 和 Stich,2003)、BOSSBase (Break Our Steganographic System)(Bas 等,2011)和 BOWS-2(Break Our Watermarking System 2nd) (Bas 和 Furon,2017) 這 3 個數據集證明算法的普適性。為了定量分析本文算法的性能,使用峰值信噪比 PSNR(dB)和結構相似度 SSIM 兩個指標來衡量原始明文圖像的恢復質量,選用秘密信息的嵌入率 ER (bit / 像素)作為衡量算法有效載荷大小的關鍵指標。
圖 9 展示了測試圖像在不同短比特串長度和定長編碼長度上的嵌入率,選取塊大小均為 2 × 2 。 可以看出定長編碼長度為 5 時比長度為 4 時嵌入率更高,同時隨著短比特串長度的增加,嵌入率出現先增后減的趨勢,在 Ls = 7 時圖像嵌入率較高。 定長編碼長度取決于原始比特流中出現的連續比特的長度,若取值過大,會增加過多的額外比特,影響壓縮率。 而短比特串長度過大時,哈夫曼編碼對短比特串的壓縮效率也會降低。 所以實驗中將定長編碼長度設置為 Lfix = 5 ,短比特串長度設置為 Ls = 7 。
圖 10 比較了本文算法與同類算法 Puteaux 和 Puech ( 2018a ), Puyang 等 人 ( 2018 ), Yi 和 Zhou (2019),Chen 和 Chang(2019)在測試圖像上的嵌入率。 為了獲得更好的性能,將 Yi 和 Zhou(2019)算法中的參數設置為 α = 5 , β = 2 ,塊大小為 3 × 3 , 設置 Chen 和 Chang(2019)算法中的定長碼字長度為 3,塊大小為 4 × 4 。 從圖 10 可以看出, Puteaux 和 Puech(2018a)算法對測試圖像的嵌入率在 1 bit / 像素以下, Puyang 等人(2018) 方法通過替換兩個高位平面使嵌入率提升到 1 bit / 像素以上,Yi 和 Zhou(2019)方法和 Chen 和 Chang(2019)方法進一步提升性能,都獲得了較好的嵌入率。 本文算法采用定長編碼和哈夫曼編碼相結合的方式,對圖像的前 5 個高位平面進行壓縮,塊大小選取為 2 × 2 ,定長編碼長度為 Lfix = 5 ,短比特串長度為 Ls = 7 。 在測試圖像中,除了 Baboon 圖像,其余各圖像分別較同類算法中最高嵌入率高出 0. 023 5 bit / 像素,0. 051 8 bit / 像素, 0. 159 1 bit / 像素和0. 060 7 bit / 像素。 在 Baboon 圖像中,非平滑區域較多,導致比特流中短比特串較多,定長編碼壓縮效率低,從而秘密信息嵌入率較低。
更多文獻可查看:研究信息隱藏相關領域的論文文獻
為進一步驗證本文算法的普適性,將本文算法應用在 UCID、BOSSBase 和 BOWS-2 這 3 個數據集上,同樣塊大小選取為2 × 2 ,定長編碼長度為 Lfix = 5 ,短比特串長度為 Ls = 7 ,測試結果如表 3 所示。本文利用前 5 個位平面進行壓縮,空出空間經過重排列排放在 3 個低位平面中,因表示空出空間大小的比特可忽略不計,故所能達到的最高嵌入率約為 3 bit / 像素,此時高位平面壓縮出的空間不小于3個。——論文作者:吳友情1,2 ,張睿靈1 ,湯進1 ,殷趙霞1∗
SCISSCIAHCI