Reversible Data Hiding in Encrypted Images by Reversible Image Transformation


19年暑期課程作業,自己的作品部分,整理了一下。 同時會上傳自己當時寫的論文,PPT,演講稿, 請不要抄襲,不要直接當成作業交,好好學習。

1.背景介紹

爲了解決網絡環境中存在的安全問題,科學家最早採用加密技術對傳輸的信息進行加密,通過設計加密算法將要通信的數據按照加密算法進行重新排列,並將置亂後的數據傳輸出去,接收方必須利用解密算法和正確的密鑰才能正確地解密,從而還原出原始的通信數據,加密技術也一直沿用至今。加密技術將祕密信息變換成一些雜亂無章的密文但是也吸引了攻擊者,爲了克服現有加密算法存在的問題,實現更安全的信息傳輸,信息安全領域新的分支,能夠應用到機密信息保護、版權保護以及安全通信等領域中起到至關重要的作用,所以,信息隱藏技術引起了科研工作者的廣泛關注,成爲信息安全領域的一個研究熱點。
傳統的信息隱藏算法,通常只考慮如何提取隱祕信息,而沒有考慮如何恢復原宿主信號。 在一些應用場合如醫學診斷、法庭舉證、藝術作品中,不光需要嵌入隱祕信息對宿主媒介進行保護, 還需要適時地能夠無失真地恢復出原始的宿主媒質,傳統的信息隱藏算法不能滿足其要求。作爲信息隱藏技術的一個新的分支,可精確恢復原媒質信息的可逆信息隱藏技術最近正被廣泛研究。
可逆信息隱藏主要是指在嵌入信息時,雖然可能會對宿主數據的質量造成一定的破壞,但如果隱藏載體在傳輸過程沒有發生變化,那麼合法用戶和權威機構在接收端可以根據提取算法提取出隱藏信息,並能夠修復失真,實現原始數據的精準恢復。可逆信息隱藏技術與一般的隱藏技術沒有原理上的本質區別,但是可逆技術在合法用戶得到嵌入信息的過程中,將因信息嵌入而引起的宿主數據失真完全修正。 這種技術在醫學、軍事、法律證據中有着非常廣泛的應用前景。
本章主要綜述可逆信息隱藏在加密圖像中的應用,以雲存儲爲例,尤其是對於需要較大存儲空間的公式化媒體文件,如圖像或視頻,雲存儲越來越受歡迎,爲了管理這些圖像,雲服務器可能會在圖像中嵌入一些額外的數據,如圖像類別和符號信息,並使用這些數據來識別圖像的所有權或驗證圖像的完整性。顯然,雲服務提供商無權在將數據嵌入外包映像的過程中引入永久性失真。因此,需要採用可逆數據隱藏(RDH)技術,在提取嵌入的消息後,無損地恢復原始圖像。雖然RDH有助於管理外包的圖像,但它不能保護圖像內,因此加密圖像的可逆信息隱藏也是重要的研究方向,可逆信息隱藏的模型如圖2.1所示,祕密信息與密鑰K相結合,通過可逆嵌入算法隱藏 到載體中,形成含載密圖像,接收端以K爲密鑰,通過提取算法提取出祕密信息和原始載體圖像。

在這裏插入圖片描述

(a)嵌入過程

在這裏插入圖片描述

(b)提取過程
圖2.1. 可逆信息隱藏算法模型

現在已經有的在加密圖像中信息隱藏實現方法從壓縮的角度一般分爲兩種,VRAE和RRBE。一種是加密後騰出空間(vacating room after encryption, VRAE),一種是加密前預留空間(reserving room before encryption, RRBE)。對於這兩種框架,發送者壓縮後發送密文給雲服務器,這種具有特殊形式的雜亂代碼的密文會引起服務器注意,試圖挖掘加密用戶的信息,假定雲服務器對於收集信息有興趣,那麼加密的信息對雲服務器更有吸引力。還有第三種就是利用可逆圖像變換(reverse image transform , RIT)實現加密圖像可逆信息隱藏(Reversible Data Hiding in Encrypted Images, RDH-EI)。主要是利用將原始圖像的內容轉換爲具有相同大小的另一個目標圖像的內容。轉換後的圖像用作“加密圖像”,發送給雲。
本章第二節主要介紹VRAE框架的幾種經典實現,第三節介紹RRBE的實現,第四節介紹RIT實現加密圖像可逆信息隱藏。

2. 加密後騰出空間VRAE

在這裏插入圖片描述

圖2.2 VRAE框架模型
如圖2.2所示,在這種框架中,內容擁有者(content owner)首先將原始的圖像使用一個密碼加密,生成加密圖像,之後內容擁有者將加密圖形送給第三方信息隱藏者(data hider例如數據庫管理者,雲服務器等),信息隱藏者利用預留的空間將一些信息無損的嵌入加密圖像中,並持有一個信息隱藏祕鑰,最後接受者(receiver),可能是內容所有者本人或者其他第三方平臺可以通過信息隱藏祕鑰提取嵌入的信息,進一步通過加密祕鑰解密加密的圖像得到原始圖像。 本節內容將簡單闡述三種實現方法,加密過程都是利用流密碼對8位灰度圖像的每個位平面進行加密生成加密圖像。方法一將加密的圖像分割成若干個a*a的不重疊的塊,每個塊用於攜帶一個額外的位。爲此每個塊中的像素根據信息隱藏祕鑰被僞隨機分成兩個組S1和S2。如果要嵌入的附加位等於0,那麼翻轉S1中每個加密像素的3個LSB, 否則翻轉S2中加密像素的3個LSB。對於數據提取和圖像恢復,接受者將S1中所有加密像素的3個LSB,形成一個新的解密塊,對於S2中的所有像素同樣翻轉形成另一個新塊,他們之一將被解密爲原始塊,由於原始圖像的空間相關性,原始圖像會比干涉塊平滑得多,根據這個原理相對應的提取出嵌入比特,然後當分割塊比較小或者原始圖像具有許多精細的紋理時,會存在位提取和圖像回覆失敗的風險。 方法二對方法一進行了改進,通過充分計算每個塊的平滑度並採用邊皮匹配減少了方法一的誤差率,根據兩個候選塊之間的絕對平滑差降序排序進行信息提取和塊修復,並且還可以用於評估沒有修復的塊的平滑度,這被稱作邊匹配(side match)。 方法三使用僞隨機排列,將加密圖像分割成大小爲L的若干組,每個組的P個位平面使用奇偶校驗矩陣被壓縮,空餘空間將用於嵌入數據。假設任意一組像素爲x1,x2,…,xL, 加密原始圖像c,它的P個位平面一共包括P·L位。數據隱藏者生成一個奇偶矩陣G大小爲(P·L-S)×P·L,壓縮c得到重要標誌s,s = G·c,s的長度爲(P·L-S),所以S位就空餘出來可以進行信息嵌入。至於接受者,8-P最重要的位像素(MSB)被提供做解密,然後接受者通過MSB估計相鄰的xi,得到估計版本c’,另一方面接受者測試s中的每個滿足 Ω(s)={u | G·u=s}的元素,從每一個容器Ω(s)中可以得到一個c的存儲版本,然後選擇最相近的一個作爲存儲位面預測試版本c’。

3. 加密前預留空間RRBE

在這裏插入圖片描述

圖2.3. RRBE框架模型

如圖2.3所示,內容擁有者(content owner)首先預留足夠的空間,然後再利用祕鑰將原始圖像加密,之後進行嵌入,現在,加密圖像中的數據嵌入過程本質上是可逆的,因爲數據隱藏者(data hider)只需要將數據容納到先前清空的空閒空間中。數據提取和圖像恢復與VRAE基本一致。RRBE實現過程主要分成四個階段:生成加密圖像,加密圖像的信息隱藏,數據提取和圖像恢復。

(1)生成加密圖像

第一階段主要可以分成三步:圖像劃分,自我可逆嵌入以及圖像加密。原始圖像將被分爲A和B兩個部分,之後A的LSB被可逆的嵌入B,那麼A的位空間就可以空餘容納信息了,最後加密重新排列的圖像。
① 圖像劃分
這一步我們的目標是創建一個儘量平滑的B區域,爲了執行性能更好的嵌入算法。假定原始圖像C,大小爲M×N,像素表示Ci,j,設置參數l, 每一塊包含m行,因此m = l/N,對於每一塊定義一個函數測量光滑度,如下式所示:
在這裏插入圖片描述

函數f值越大,表示對應塊的紋理越多,越不光滑,所以我們選擇最高的f值的塊作爲區域A,剩下的相對光滑的塊作爲區域B。
② 自我可逆嵌入
這一步的目標是將區域A的LSB嵌入區域B中。如圖2.4所示,B區域中的像素都被分成兩個部分:白色的像素,它的索引值i, j滿足(i + j)mod 2=0;黑色的像素,它的索引值i, j滿足(i+j)mod 2 = 1(邊界像素後面會提到)。每個白色像素Bi,j,我們可以利用周圍四個黑色像素插值運算估計它的值如下式所示,
在這裏插入圖片描述
其中Wi表示權重,我們可以計算實際像素和估計值得偏差Bi,j – Bi,j’,得到一個偏差序列。然後根據相同的方法,計算黑色像素和估計值,得到一個偏差序列。總的來說,爲了嵌入信息,每一層都會通過這樣的計算構造兩個偏差序列。

在這裏插入圖片描述

圖2.4. 圖像劃分和嵌入步驟

利用偏差值構造柱狀圖,首先將其分成兩個部分,左邊部分和右邊部分,分別尋找最高峯值點記做LM和RM,一般而言,LM = -1,RM = 0,再將每個部分的零點記做LN 和RM爲了將信息嵌入偏差等於RM的位置,將RM+1到RN-1之間所有的值都向右移動一步。左邊部分的嵌入相同,只是移動方向是向左,移動可以通過對應的元素減1實現。
假設我們需要做這種嵌入操作x次去容納增加信息,在前面的x-1次已經容納了大部分信息,剩下的第x次可能只剩下少數的信息需要嵌入,所以可能不需要移動峯值到零點之間的所有的值。爲了解決這個問題,我們可以定義兩個參數LP和RP,通過移動零點和LP,RP之間的值,我們可以將信息嵌入LP和RP而不是峯值,如圖2.5是一個示例圖,其中LP = -2, RP = 2。

在這裏插入圖片描述

(a)原始直方圖 (b)位移後直方圖

圖2.5 信息嵌入LP,RP(信息長度=1000bits, LP=-2,RP=2)

和其他的RDH算法一樣,溢出問題可能會發生在255變成256或者0變成-1的過程中,爲了避免這一點,我們僅僅將對應像素爲1-254的偏差信息嵌入,但是像素從0變成1以及從254變成255的時候模糊情況還是會發生,這些在嵌入過程中被創造出來的邊界像素被稱作僞邊界像素(pseudo-boundary),爲了區分自然邊界和僞邊界,我們引入一個邊界映射地圖,它是一個二進制的序列,0表示自然邊界像素,1表示僞邊界像素,如圖2.4所示公式無法計算B區域邊界的估計值,爲了更好地利用B的邊緣,我們將邊界映射地圖嵌入其中。
③ 圖像加密
一個灰度值Xi, j可以被8位二進制表示,Xi, j(0),Xi, j(1),Xi, j(2),Xi, j(3),Xi, j(4),Xi, j(5),Xi, j(6),Xi, j(7),如下
在這裏插入圖片描述

加密位Ei, j(k)可以通過下式計算得到:

在這裏插入圖片描述
其中r i,j(k)是通過祕鑰K計算得到的。
最後我們還要在加密版本的A的LSB的前10像素嵌入10位信息,告訴信息隱藏者(data hider)行的數量以及他可以嵌入信息的位平面的數量。

(2)加密圖像的信息隱藏

一旦信息隱藏者(data hider)得到加密圖像E,即使他沒有得到原始圖像但他依舊可以嵌入信息。設置參數AE,它是從E的LSB的前10個加密像素。知道他可以修改的位平面和行數量,信息隱藏使用附加信息m替換原有的位平面,最後信息隱藏者根據嵌入結束的位置
設置一個標籤m,並且根據隱藏祕鑰對m進行加密,最終得到圖像E’。任何沒有得到隱藏祕鑰的人無法提取附加信息。

(3)信息提取和圖像恢復

如果數據庫的管理者持有隱藏祕鑰他可以直接進行關鍵信息m的提取,在加密圖像的基礎上當需要新信息時,管理員可以直接通過LSB替換更新嵌入信息,所有的過程都是在加密域上進行的,不會泄露原本的內容。
接受者持有隱藏祕鑰和解密祕鑰,他可以進一步解密得到原始圖像。

4. 基於可逆圖像變換RIT

在這裏插入圖片描述

(a)VRAE (b)RRBE © RIT

圖2.6. 三種RDH-EI框架比較

圖2.6(a)是加密後騰出空間(VRAE),圖像所有者(發送者)用密鑰k將圖像I加密爲E(I),雲服務器通過壓縮加密後的圖像E(I)嵌入數據,生成存儲在雲中的Ew(I)。當獲取檢索請求時,雲服務器將Ew(I)返回給接收方,可能是經過授權的第三方,第三方通過密鑰k聯合解壓解密的過程生成I。複雜性由必須加入解壓解密過程才能獲得原始圖像的接收方承擔。
圖2.6(b)是預留空間加密,(RRBE),圖像所有者(發送者)從圖像I中預留空間,並使用密鑰k將其加密爲E(I),然後將其發送到雲服務器,雲服務器將數據嵌入預留的空間並生成Ew(I)。Ew(I)存儲在雲中,雲服務器可以從中提取用於管理的數據。當一個授權用戶(接收者)想要檢索圖像,雲服務器可以從Ew(I)恢復E (I)並且將E(I)發送到用戶,用戶可以解開E(I),並且可以使用鑰匙K得到I. 複雜度由發送方承擔,發送方應爲RDH預留空間。
圖2.6(c)是基於可逆圖像轉換RIT,加密圖像I通過密鑰k被“加密”爲另一個明文圖像E(I),因此用戶的所有圖像,無論是否加密,都將以明文的形式存儲在雲中。雲服務器可以使用任何經典的純文本圖像RDH方法將數據嵌入到E(I)中。E(I)可以通過雲從水印圖像Ew(I)中恢復,並將其發送回反變換的授權用戶,用密鑰k得到原始圖像I。這種方法有兩個好處,第一是發送給雲服務器的是明文,不會引起雲服務器注意,第二是服務器可以使用純文本圖像的RDH方法,將數據輕鬆嵌入明文圖像中。
基於RIT的圖像加密實現過程包括三個步驟:塊匹配,塊轉換,關鍵信息嵌入。
首先,我們將原始圖像I和目標圖像J分別分割成N個不重疊的塊,然後將I和J的塊組合一個序列對,如(B1,T1),…,(Bn,Tn),其中Bi爲I的原始塊,Ti爲J的對應目標塊,1≤i≤n。經過變換,生成一個類似Ti的Ti’。然後,我們將目標圖像J中的每個Ti’替換爲Ti,得到轉換後的圖像J’。最後一步嵌入附加信息,關鍵信息是從J‘得到I的重點,關鍵信息會被壓縮,被K加密,祕鑰K在接收者手中,只有接受者擁有K,可以解密E(I)。

(1)塊匹配

爲了使變換後的圖像J’和目標圖像J看起來像,我們需要一些處理計算,首先計算標準差-方差SD如下式,當匹配原圖像和目標圖像時,我們希望方差相近的兩個塊進行匹配。

在這裏插入圖片描述

爲了進行可逆運算,從轉換後的圖像J’恢復原圖像I,原始塊的位置應該記錄嵌入圖像中,如果有N個塊,索引位數將是NlogN,顯然N越大,塊尺寸越小,那麼轉換圖像的質量越好,但是N會很大,每個塊甚至沒有這麼大的空間保存索引。

在這裏插入圖片描述

圖2.7. 海量圖片的4*4塊方差分佈結果
如圖2.7是將海量圖像進行4*4劃分,計算每一塊的方差,得到的實驗數據方差分佈展示,從圖中可以看出方差之間分佈集中在0附近,隨着方差增大,出現的頻率也驟減,我們將方差分爲兩類, 指定一個參數α,根據百分比,劃分方差SD數據0到N屬於class 0 ,(其中數量比例是α%),另一種爲class 1。這種分類方法可以解決剛纔索引太大的問題下面通過一個例子說明。

在這裏插入圖片描述

(a)原始圖像 (b)目標圖像 (c)轉換圖像

圖2.7. 塊匹配例子

在這裏插入圖片描述

圖2.8 配對結果
如圖2.7是一個例子,假設一個圖像包含10個塊,圖(a)是原始圖像,圖(b)是目標圖像,圖(c)是轉換圖像,第一行表示方差表格,第二行CIT表示類表,α= 70,所以我們將原始圖像中7個塊劃分爲class0,另外三個劃分爲class1。在目標圖像中,第八塊和第九塊都是方差5,第八塊被標記爲class0,但是第九塊爲class1,因爲class0已經有7塊了。通過這樣的劃分,可以得到第二行的CIT序列。配對原則就是原始圖像中classi中的第i塊就和目標圖像中對應classi中第i塊。根據配對原則,原始圖像第一塊和目標圖像第四塊是匹配的,因爲他們都是類1中的第一個塊,結果如圖2.8所示。 後續的圖像T和T’轉換操作並不會改變方差,所以目標圖像T和轉換圖像T’有相同的CIT。接收者爲了從轉換圖像得到原始圖像只需要知道原始圖像的CIT,就可以得到第三行的表格,通過轉換得到原始圖像。 ## (2)塊轉換 設原始圖像,目標圖像,轉換圖像的序列表示分別爲B={P1,P2,…Pn}, T= {P1’, P2’…Pn’}, T’ ={P1’’, P2’’…Pn’’},分別計算B和T的平均值UB,UT。對於T’中每個像素Pi’’=Pi+UT-UB,令△U = UT-UB,爲了保證Pi’’屬於0-255,並減小△U的範圍,定義△U爲:

在這裏插入圖片描述

通過計算Pi’’得到轉換圖像T’。
對每個塊旋轉β{0,9,180,270}隨機選擇其中一個角度,旋轉減少旋轉塊和目標塊的均方誤差。

(3)轉換過程

已知輸入:原本的圖像I和祕鑰K
要求輸出:加密圖像E(I)
①尋找目標圖形J,J和I有相同大小;
②將I和J分割爲無重疊的4*4的塊,假設每個圖像包含N個塊,計算每個塊方差和平均值;
③利用參數α劃分方差,分別生成I和J的CIT,根據CIT,將I和J中的塊匹配;
④對每一對(Bi, Ti),計算偏差△Ui與B中每個像素相加,旋轉任意角度βi,得到轉換圖形Ti’;
⑤在目標圖形J中,將每一個塊Ti用Ti’替換,生成轉換圖形J’;
⑥所有的轉換對的△ui和βi以及圖形I的CIT,序列壓縮,參數α選擇一種經典加密算法加密,祕鑰K;
⑦將加密的序列作爲關鍵信息,嵌入圖像J’,輸出加密圖像E(I)。

(4)信息提取圖像恢復過程

輸入:加密圖像E(I), 祕鑰K
輸出:原本圖像I
① 提取關鍵信息,並保存圖像J‘;
② 使用祕鑰K解開關鍵信息,然後解壓序列得到圖像I的CIT,△ui, βi, 還有α;
③ 分割J‘爲N個4*4的塊,計算每個塊的方差,然後根據α生成J’的CIT;
④ 根據圖像J和J‘的CIT,重新組合J’的塊;
⑤ 對每個塊T‘,根據βi旋轉T’,每個像素都減去△ui,輸出原本圖像I。

參考文獻

[1] J.Zhou etal.,“Secure reversible image data hiding over encrypted domain via key modulation,” IEEE Trans. Circuits Syst. Video Technol., vol. 26, no. 3, pp. 441–452, Mar. 2016.
[2] Zhang W, Wang H, Hou D, et al. “Reversible Data Hiding in Encrypted Images by Reversible Image Transformation”[J]. IEEE Transactions on Multimedia, 2016, 18(8):1-1.
[3] Ma K, Zhang, Weiming, Zhao, Xianfeng, et al. “Reversible Data Hiding in Encrypted Images by Reserving Room Before Encryption”[J]. IEEE Transactions on Information Forensics & Security, 2014, 3(7):553-562.
[4] X. Zhang, “Reversible data hiding in encrypted images,” IEEE Signal Process. Lett., vol. 18, no. 4, pp. 255–258, Apr. 2017.
[5] 俞春強, 彭琦, 陳豔. 可逆信息隱藏綜述[J]. 現代計算機:專業版, 2015(11):68-72.
[6] 高真. 密文圖像中的可逆信息隱藏算法研究[D].

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章