• 沒有找到結果。

第二章 文獻探討

第四節 影像加密

隨著網路的發達,能夠在網路上傳輸的資料從文字訊息逐漸演變到各種多媒 體的傳輸,也因此多媒體秘密傳送的要求也逐漸浮出檯面,在影像加密的領域中 有許多不同的技巧,本論文以子圖分割(Sub Image Divide)的方式對影像進行區塊 性的處理,故本節將介紹近年來學者以子圖的概念針對影像加密所做的研究文獻。

2013 年,Afarin 與 Mozaffari 學者提出以基因演算法(Genetic Algorithm)加密 影像,且不需要其他加密演算法的輔助[14],基因演算法為一種人工智慧演算法,

藉由模仿生物基因的演化模式而衍生出來的演算法,在各個領域已有廣大的應用 [15],但本篇的基因演算法有做修改,為了能夠達到影像可逆以及解密影像,在 交叉(Cross-over)與突變(Mutation)並沒有採取隨機的方式,而是利用鑰匙(Key)決 定要運算的部分。演算法開始之前會先利用線性亂數產生器(Linear Random Number Generator)產生四把鑰匙,分別是𝐾𝑒𝑦_𝑝𝑒𝑟

𝐾𝑒𝑦_𝑠𝑢𝑏

𝐾𝑒𝑦_𝑔𝑒𝑛,以及 𝐾𝑒𝑦_𝑐𝑚;首先,利用𝐾𝑒𝑦_𝑝𝑒𝑟進行列與行的置換(Permute),如圖 3 所示,以此方 式取代基因演算法中,隨機亂數初始化母群體的步驟。

11

圖 3 行列置換後的結果(a.原始影像 b.列置換 c.行置換 d.行列置換)

完成置換後,再將影像切成四等分並進行斜角的子圖交換,藉以打散原像素 所在的位置,提升加密的效果,如圖4 所示。之後,根據𝐾𝑒𝑦_𝑠𝑢𝑏挑選出其中一 張子圖,從被挑選的子圖中再使用𝐾𝑒𝑦_𝑔𝑒𝑛隨機選出兩個像素值,並將像素值以 8-bit 二進制表示,使用𝐾𝑒𝑦_𝑐𝑚執行基因演算法的單點交叉(Single Point Cross-over)與突變,最後進行影像的重構,將二進制值轉換為像素值,並計算子圖的適 應值(Fitness Value),再適應值加以計算成熵(Entropy)比較是否有增加,若有增加 則繼續挑選當前子圖的像素值執行演算法,若沒有增加表示熵已經足夠,可以挑 選下一張子圖執行演算法,直到所有子圖完成即結束整個演算法。

圖 4 斜角交換

12 於進階加密標準(Advanced Encryption Standard,AES),其簡單易懂的演算法流程 且難以被破解的特性,使得美國政府在公開徵選用以取代資料加密標準(Data Encryption Standard,DES)的大會中脫穎而出,除了 128 位元金鑰的 AES 較有風 險之外,192 位元與 256 位元的版本尚無有效的攻擊手法。

13

圖 5 4×4 區塊示意圖

由於AES 為區塊式加密,Zhang 與 Ding 學者選擇以 4×4 為一個區塊,將影 像分解成許多子圖(如圖 5 所示)後,執行加密演算法,待所有子圖都完成加密後,

在全部組合為一張完整的密文影像。AES 演算法主要有四大步驟,分別是:

SunBytes,藉由查表的方式將每個像素值以非線性的函式替換成對應的值;

ShiftRows,將子圖中每一列進行循環式位移;MixColumns,透過一線性轉換涵 式,使得子圖每一欄能夠充分混合;AddRoundKey;根據該回合的回合金鑰(Round Key)做異或(XOR)運算;如此操作一定的回合數之後,即完成了加密,整個流程 如圖6 所示。使用 AES 對影像加密並非為一個全新的研究議題[17-23],本篇論 文單純使用 AES 做影像加密,沒有使用其他可能會影響影像的操作,最後在實 驗上分析加密後的相關數據,作為參考的文獻有其參考的價值,從實驗結果我們 可以發現,AES 用在影像加密上有非常好的加密效果。

14

圖 6 Zhang 等學者的演算法流程

但從實驗數據來看,密文影像的像素值分布有不平均的現象(如圖 7),為了 避免有心人士或是攻擊者利用直方圖統計的攻擊手法取得秘密影像的訊息,可靠 的密文影像必須盡可能使得像素值有好的平均分配結果,或許是因為使用了較短 的密鑰,若使用192 bit 以上的版本應該能讓密文影像上的像素分布更為平均。

15

圖 7 經 AES 加密後的 Lena 直方圖

除了以固定大小切割影像形成子圖之外,也可以用其他挑選的方式選出構成 子圖的方法,學者Yi 與 Zhou 於 2016 年提出改良的可逆式資訊隱藏技術,嘗試 用不一樣的影像分割方法預測誤差值[24]。Yi 與 Zhou 受啟發於學者 Zhang 等人 在 2014 年提出的論文方法[25],他們將影像藉由整數小波轉換(Integer-DWT)產 生四個頻帶,分別是低頻區(LL)、中頻區(LH、HL),以及高頻區(HH),並在中頻 區與高頻區執行嵌入演算法,Yi 與 Zhou 學者比較其分割子圖的方式,改以預測 誤差法(Prediction Error Values)嵌入資訊,從結果來看,他們的方法比 Zhang 等學 者的表現更佳,且取出訊息後的失真度幾乎接近於0。預測誤差法為一種利用指 定位置𝑃1的像素值,根據公式計算出另一個位置𝑃2的像素值,但是𝑃2實際上也 許不是由公式計算出的結果,於是我們再將𝑃2實際的像素值扣除計算出的數值 得到一誤差值𝐷,利用𝐷的大小或特性可以決定是否能進行嵌入,例如 Lee 等學 者利用當前位置的左方與上方的像素值做預測[26],並利用𝑇當作門檻值決定是 否嵌入訊息,為了降低嵌入訊息後影像失真度過高,𝑇的控制顯得十分重要。他 們將影像劃分成棋盤狀的方式(如圖 8),將影像分解成類似一階小波轉換的圖形 (如圖 9),圖形轉換後產生𝐼 、𝐼 、𝐼 以及𝐼 四個子圖,藉由𝐼 預測剩下三個子圖產

16

生預測子圖𝐼′ 、𝐼′ 以及𝐼′ ,並計算𝐼 與𝐼′ 之間的差異值,其中2 ≤ 𝑛 ≤ 4,最後 得到三張子圖的誤差值𝑒 、𝑒 以及𝑒 。

圖 8 Yi 與 Zhou 學者的棋盤劃分方式

圖 9 Yi 與 Zhou 學者分解後的影像

他們的方法需要三把金鑰,分別是:𝐾𝐸

𝐾𝐻以及𝐾𝑆,在產生誤差值之後,

𝐼 利用𝐾𝐸並根據混沌理論(Chaos Theory)[27]產生密鑰流執行異或運算產生密文 E1,𝐼 、𝐼 以及𝐼 則被誤差值𝑒 取代,其中2 ≤ 𝑛 ≤ 4,再用𝐾𝐸置換這些誤差值,

得到剩下加密後的子圖𝐸2

𝐸3以及𝐸4,同時除了𝐸1之外的子圖,再進行下一步

17

的動作-嵌入演算法,在嵌入秘密訊息之前,使用𝐾𝐻對祕密訊息做加密產生密 文,由於本章節著重在影像切割後加密方式的探討,故嵌入的部分可參考原著的 論文,完成影像的加密及資訊嵌入後,最後再使用𝐾𝑆攪亂整張影像,完成所有的 流程,如圖10 所示。

圖 10 Yi 與 Zhou 學者方法流程圖

相關文件