國 立 交 通 大 學
資訊管理研究所
碩 士 論 文
以圖片攪亂提升 DCT 浮水印演算法的安全性
Enhancing the Security of DCT Watermarking Scheme
by Image Scrambling
研 究 生: 朱 國 鼎
指導教授: 蔡 銘 箴 博士
以圖片攪亂提升 DCT 浮水印演算法的安全性
學生:朱國鼎
指導教授:蔡銘箴
國立交通大學 資訊管理研究所 碩士班 摘要 數位浮水印技術乃是利用人眼無法察覺圖片細微變化的弱點,將浮水印訊息 直接嵌入原數位圖片中,作為聲明版權之用。Das 和 Maitra 把浮水印系統當成一個加解密系統,對 CKLS 及 CHU 浮水印 演算法進行密碼分析(Cryptanalysis)攻擊,只需降低部份圖片的畫質卻具有相 當顯著的攻擊效果。他們利用浮水印數列皆為標準常態分配的特徵,找出如何判 斷相異數列的特徵值,接著再以迴歸方程式進行浮水印係數的重建,找出特徵值 相符的數列後,再嵌回原來的浮水印係數當中。
由於 Das 和 Maitra 的密碼分析攻擊是針對 CKLS 及 CHU 浮水印演算法,因 此在考量不更動原始演算法的情形下,我們便對圖片作改變,先把原始圖片進行 圖片攪亂的動作後,再以原始的浮水印演算法嵌入浮水印,嵌入完成後,再將嵌 有浮水印的圖片以相同的亂數種子還原。 實驗結果證實,經過攪亂前處理,縱然受到 Das 和 Maitra 所提出的密碼分 析攻擊,仍然能夠取出高相關度(correlation)的浮水印數列,證明本研究的設 計,可增加以 DCT 為轉換手法的 CKLS 和 CHU 的安全性。
關鍵字
數位浮水印、密碼分析、圖片攪亂Enhancing the Security of DCT Watermarking Scheme by
Image Scrambling
Student: Kuo-Din Chu
Advisor: Min-Jen Tsai
Institute of Information Management
National Chiao Tung University
ABSTRACT
Watermarking is a technique where the inserted signal is too subtle to be detected for the copyright protection in video, image or music files.
Das and Maitra regard the watermarking system as an encryption/decryption system. Therefore, they can utilize the cryptanalysis approach to attack CKLS and CHU’s schemes which are basically DCT based watermarking. Their approach only slightly affects the image quality but effectively remove the watermark signal. In essence, they focus on the fact that the watermark signal is the random sequence with standard normal distribution. By differentiating the characteristic of different watermark signals, the regression function is utilized to rebuild and substitute the original DCT coefficients. By using this technique, cryptanalysis can decrease the correlation value significantly for CKLS and CHU’s techniques.
Since Das and Maitra focus on CKLS and CHU’s schemes, the purpose of this study is to modify the image by scrambling techniques to resist the cryptanalysis attacks, without changing CKLS and CHU’s methods. The first step is to scramble the image before embedding the watermark. We then embed the watermark in the scrambled image and restore it.
From the experiment results, our approach can still retrieve high correlation values from the watermarked images which are under the cryptanalysis attacks. Therefore, we can conclude our approach can effectively enhance the robustness and security of CKLS and Chu’s methods.
Keywords
目錄 摘要 ...i 一、序論 ...1 1.1 研究背景與動機...1 1.2 論文架構...1 二、文獻探討 ...3 2.1 數位浮水印...3 2.1.1 數位浮水印簡介...3 2.1.2 良好數位浮水的要素...5 2.1.3 數位浮水印的類型...6 2.1.4 數位浮水印的應用...9 2.2 密碼分析...9 2.2.1 密碼學...9 2.2.2 密碼系統的要素...10 2.2.3 密碼分析(Cryptanalysis)...10 三、浮水印密碼分析攻擊 ...12 3.1 CKLS浮水印演算法: ...12 3.2 CHU浮水印演算法 ...15 3.3 CKLS密碼分析攻擊 ...20 3.4 密碼分析定理:...21 3.5 攻擊實驗...24 3.6 JPEG壓縮攻擊 ...27 四、利用圖片攪亂提升安全性 ...30 4.1 CKSL演算法的改進 ...30 4.1.1 圖片攪亂...30 4.1.2 浮水印演算法的改進...30 4.2 攪亂演算法與密碼分析攻擊...31 4.3 攪亂演算法與密碼分析攻擊小結...37 4.4 圖片強韌性...40
4.5.1 圖片特徵值分析...51 4.5.2 特徵值分析小結...69 五、結論與未來展望 ...70 5.1 結論...70 5.2 未來展望...70 參考文獻 ...71 附錄Ⅰ ...73 附錄Ⅱ ...75
圖目錄
圖 2- 1 資訊隱藏分類架構圖... 4 圖 2- 2 DCT 與 DWT 頻率域圖形差異圖 ... 7 圖 2- 3 高低頻區示意圖... 8 圖 2- 4 一般嵌入與擷取模型... 8 圖 3- 1 CKLS 嵌入流程圖 ... 13 圖 3- 2 CKLS 擷取流程圖 ... 15 圖 3- 3 Subimage 分配圖... 16 圖 3- 4 Subsampling 後的結果... 16 圖 3- 5 ZIGZAG 順序圖... 17 圖 3- 6 CHU 嵌入示意圖 ... 18 圖 3- 7 不含有最大的50個係數時的曲線圖... 20 圖 3- 8 含有最大的50個係數時的曲線圖... 21 圖 3- 9 密碼分析攻擊流程圖... 24 圖 3- 10 實驗所採用的圖片... 25 圖 3- 11 CKLS 密碼分析攻結果圖 ... 26 圖 4- 1 浮水印演算法改進圖... 30 圖 4- 2 攪亂單位差異圖... 31 圖 4- 3 8×8 攪亂下的 CKLS 密碼分析攻結果圖 ... 32 圖 4- 4 不同攪亂單位下之浮水印係數分佈圖... 39 圖 4- 5 CKLS 影像處理攻擊結果圖(Bridge) ... 41 圖 4- 6 CKLS 影像處理攻擊結果圖(F16) ... 41 圖 4- 7 CKLS 影像處理攻擊結果圖(Fishboat)... 42 圖 4- 8 CKLS 影像處理攻擊結果圖(Goldhill) ... 42 圖 4- 9 CKLS 影像處理攻擊結果圖(Lena) ... 43 圖 4- 10 CKLS 影像處理攻擊結果圖(Peppers)... 43 圖 4- 11 CKLS 影像處理攻擊結果圖(Couple)... 44 圖 4- 12 CKLS 影像處理攻擊結果圖(Elaine) ... 44 圖 4- 13 CHU 影像處理攻擊(Peppers) ... 45圖 4- 14 CHU 影像處理攻擊(Lena) ... 46 圖 4- 15 CHU 影像處理攻擊(Bridge) ... 46 圖 4- 16 CHU 影像處理攻擊(Couple)... 47 圖 4- 17 CHU 影像處理攻擊(Elaine)... 47 圖 4- 18 CHU 影像處理攻擊(Goldhill)... 48 圖 4- 19 CHU 影像處理攻擊(F16)... 48 圖 4- 20 CHU 影像處理攻擊(Fishboat) ... 49 圖 4- 21 不同攪亂單位下浮水印係數平均值的差異圖... 50 圖 4- 22 一張 256×256 圖片各頻區的係數個數分佈圖... 53 圖 4- 23 CKLS_Range(低頻區特徵值) ... 54 圖 4- 24 CKLS_Range(中高頻區特徵值)... 54 圖 4- 25 CKLS_Variance(低頻區特徵值) ... 55 圖 4- 26 CKLS_Variance(中高頻區特徵值) ... 55 圖 4- 27 CKLS_Energy(低頻區特徵值)... 56 圖 4- 28 CKLS_Energy(中高頻區特徵值)... 56 圖 4- 29 CKLS_Log Energy(低中高頻區特徵值) ... 57 圖 4- 30 CKLS_Shannon(低頻區特徵值) ... 57 圖 4- 31 CKLS_Shannon(中高頻區特徵值) ... 58 圖 4- 32 CKLS_Entropy(低頻區特徵值) ... 58 圖 4- 33 CKLS_Entropy(中高頻區特徵值) ... 59 圖 4- 34 CKLS_Skewness(低頻區特徵值) ... 59 圖 4- 35 CKLS_Skewness(中高頻區特徵值) ... 60 圖 4- 36 CKLS_Kurtosis(低頻區特徵值) ... 60 圖 4- 37 CKLS_Kurtosis(中高頻區特徵值) ... 61 圖 4- 38 一張 128×128 圖片各頻區的係數個數分佈圖 ... 61 圖 4- 39 CHU_Range(低頻區特徵值)... 62 圖 4- 40 CHU_ange(中高頻區特徵值) ... 62 圖 4- 41 CHU_Variance(低頻區特徵值)... 63 圖 4- 42 CHU_Variance(中高頻區特徵值)... 63 圖 4- 43 CHU_Energy(低頻區特徵值) ... 64
圖 4- 44 CHU_Energy(中高頻區特徵值) ... 64 圖 4- 45 CHU_Log Energy(低中高頻區特徵值)... 65 圖 4- 46 CHU_Shannon(低頻區特徵值)... 65 圖 4- 47 CHU_ Shannon(中高頻區特徵值)... 66 圖 4- 48 CHU_Entropy(低頻區特徵值)... 66 圖 4- 49 CHU_Entropy(中高頻區特徵值)... 67 圖 4- 50 CHU_Skewness(低頻區特徵值) ... 67 圖 4- 51 CHU_Skewness(中高頻區特徵值) ... 68 圖 4- 52 CHU_Kurtosis(低頻區特徵值) ... 68 圖 4- 53 CHU_Kurtosis(中高頻區特徵值) ... 69
表目錄
表 2- 1 密碼分析的類型... 11 表 3- 1 Subimage 間的相似程度... 19 表 3- 2 CKLS 密碼分析攻擊結果表 ... 25 表 3- 3 CHU 密碼分析攻擊結果表 ... 27 表 3- 4 Lena 經 JPEG 壓縮攻擊後的結果 ... 28 表 3- 5 Peppers 經 JPEG 壓縮攻擊後的結果... 28 表 3- 6 Fishboat 經 JPEG 壓縮攻擊後的結果... 29 表 4- 1 CKLS 經過攪亂前處理後的密碼分析攻擊結果 ... 33 表 4- 2 以 Random 方式對 CHU 進行攪亂... 35 表 4- 3 原圖(256×256)以 Fibonacci 方式攪亂:... 35 表 4- 4 每張 Subimage 以 Fibonacci 方式攪亂:... 36 表 4- 5 每張 Subimage 以 Fibonacci 方式攪亂(使用不同的攪亂種子):... 36 表 4- 6 CHU 經過 Fibonacci 後的密碼分析攻擊結果 ... 37 表 4- 7 CHU 經過 Random 後的密碼分析攻擊結果... 37一、序論
1.1 研究背景與動機 隨著數位化時代的來臨,大量的文字、圖片、視訊與音樂等,皆能夠轉換成 數位檔案儲存,加上各類消費性電子產品如手機、MP3 Player、DVD Player 的便 利性,人們也逐漸習慣使用不佔空間、傳遞快速的數位化檔案。但就另一方面來 看,媒體數位化也等於更容易遭受盜版、不法使用,因此,數位浮水印這樣一個 保護版權的技術便應運而生。如同密碼學的領域,有加密者與破解者,數位浮水 印亦是如此,新的浮水印演算法不斷被提出,各類型的攻擊也層出不窮,有鑑於 此,本文便試圖對於 CKLS 及 CHU 以 DCT 為主的演算法進行補強,以期能夠 提供更佳的防護效果。 1.2 論文架構 本論文其餘各章節內容摘要說明如下: 第二章 此章為文獻探討,介紹數位浮水印的源起、內涵、類型與研究方向等,並解 釋說明何謂密碼分析、密碼分析的類型。 第三章 設計浮水印時必須均衡考量不可視性、強韌性、安全性等要素,任何一環出 現弱點,就容易淪為攻擊者攻擊的對像,學者 Das 與 Maitra 便運用浮水印數列 為一標準常態分佈的特質,針對 CKLS 及 CHU 浮水印演算法進行密碼分析攻 擊,只需降低許些的圖片品質或甚至維持和原圖相似的高品質,就能達顯著地攻 擊效果,本章即是在說明此一密碼分析攻擊。 第四章 本章主要針對第三章所提出來的攻擊方式,進行 CKLS 與 CHU 演算法本身 的補強,補強的方法便是加入攪亂前處理,此一方法不但有效提升了 CKLS 及 CHU 演算法的安全性,並增加了 CKLS 及 CHU 演算法對於影像處理攻擊的強韌 性。第五章
二、文獻探討
2.1 數位浮水印 2.1.1 數位浮水印簡介 音樂、圖片、視訊等產品數位化的時代已然來臨。由於數位產品可被無限制 的完美複製,又能透過有網際網路傳播,因此,若缺乏完善的數位智慧財產權保 護機制,數位產品的著作權將無從防護與確認。圖片數位浮水印技術乃是利用人 眼無法察覺圖片細微變化的弱點,將浮水印訊息直接嵌入原數位圖片中,並經由 公開的演算法將嵌入的資訊依偵測出來。 為了將一些秘密的訊息發佈出去,通常採用的方式有二種: 一、資訊偽裝(Information Hiding, Steganography):藉由其它多媒體(Multimedia)物件將這些訊息掩飾起來,此種方法通常稱 之為「資訊偽裝」(Information Hiding, Steganography),而這此負責掩飾秘密訊 息的多媒體物件即稱之為「掩護媒體」(Cover Media)。掩護媒體常見的有圖片 (Image)、影片(Video)或音訊(audio)。 二、資訊加密(Information Encryption): 即是直接將卻傳送的訊息打亂,形成密文,使他人無法閱讀,古今中外皆有 相當多實際的案例。資訊偽裝有別於資訊加密,資訊偽裝的目的不在於限制對於 掩護媒體的存取,而是要保護隱藏的資訊。 數位浮水印可視為資訊偽裝的一種,數位浮水印與一般資訊偽裝最大的差別 在於,數位浮水印強調「強健性」(Robustness),即是能夠承受第三方有意或無 意的攻擊與破壞。常見的破壞有壓縮、尺寸變化或量化等。 關於數位媒體的資訊隱藏技術,其分類架構圖如下:
圖 2- 1 資訊隱藏分類架構圖[4] 資訊隱藏包括有隱藏式通道(Covert Channels)、偽裝(Steganography)、匿名 (Anonymity)與版權標記(Copyright Marking),依次分述如下: z 隱藏通道: 隱藏式通道是指非正式拿來用作通訊的傳輸通道,在網路安全議題當 中,常被駭客、木馬程式用於竊取電腦上的資訊或取得控制權。 z 偽裝: 偽裝是將所要傳遞的機密訊息藏入選定的掩護媒體中,唯有正確的金鑰 才能取出其中的秘密訊息。 z 匿名: 匿名是指訊息傳送時,不洩露出真實傳送者的相關訊息,傳送者能以假 名(Pseudonym)傳送隱密的訊息,也能以假名收到回覆。 z 版權標記: 在數位媒體中藏入所有權相關資訊的方法即稱為版權標記,在目前, 最具代表性的就是數位浮水印(Digital Watermarking)。數位浮水印與偽裝 的研究上最大的差異在於,偽裝法著重於所嵌入的資訊量,較少討探遭受 攻擊的影響,而數位浮水印則強調所嵌入的浮水印數列在受到攻擊後的殘 留情況。
2.1.2 良好數位浮水的要素 數位浮水印可以是一群隨機數列或是一張圖片,一個良好的數位浮水印技術 通常具有以下幾種要素: z 不可視的(Invisible): 製作浮水印時最基本的要求,就是透過人眼視覺檢視、比較原始圖片與 嵌有浮水印圖片時,無法辨別出二張圖片有何不同點,換句話說,就是讓人 感覺與原圖幾乎是一模一樣。將浮水印以不可視方式嵌入,除了降低對原圖 的品質影響外,也能減少被遭受惡意竄改的機率。在客觀的檢測標上,即是 使信號雜訊比(Peak Signal to Noise Ratio, PSNR)大於或等於 30 db(256× 256 的圖片)。計算方式如下: MSE PSNR 2 10 255 log 10 =
其中的均方差(Mean Square Error, MSE)計算方式如下:
(
)
∑∑
− = − = − ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ × = 1 0 1 0 / 1 m i n j ij ij I I n m MSE ij I 表示原圖在( )
i, j 位置上的像素值, / ij I 表示處理過後的影像,在( )
i, j 位 置上的像素值,m 與 n 表分別代表影像的長與寬。如果二張圖片運算出來的 PSNR 愈高,則表示這二張圖片愈相似。 z 強韌性(Robustness): 浮水印的強韌性代表著對於攻擊的忍受能力,禁得起攻擊的浮水印,才 能達成它保護所有權的目的。數位媒體的一大特性就是容易遭到修改、複 製,因此要如何能達到所嵌入的資訊在傳輸過程中,或是經過過濾處理、有 意或惡意的攻擊後,仍不遭受攻擊的影響,實為數位媒體所有權保護的最主 要訴求。 z 安全性(Security): 浮水印必須具備不可偵測的特性。即使浮水印演算法是公開的,惡意攻 擊者也無法藉此找出浮水印資訊。一般來說,安全性常藉由使用私鑰/公鑰 (Private key/Public key)來完成,只有合法擁有者才知道金鑰,使用正確 的金鑰才能獲得嵌入的訊息。z 盲擷取(Blind Extraction): 非盲擷取的浮水印技術是當針對已含有浮水印保護的媒體,作擷取浮水 印的動作時,需要參考到原始媒體,才能順利地擷取出浮水印。而盲擷取乃 是指在浮水印取出過程中,不需要原始媒體訊號的協助就可順利取出浮水 印。盲擷取的浮水印技術能節省儲存原始媒體的空間,不必特別為原始媒體 保存安全性作任何考量。 2.1.3 數位浮水印的類型 數位浮水印就視覺辨識的角度來看,可分為「可視」(Visible)與「不可視」 (Invisible)二種,即嵌入後的浮水印,若能為人類肉眼所輕易辨識出來者,稱 為可視浮水印,若無法輕易被辨識者(即以上述資訊偽裝方式嵌入),稱為不可 視浮水印。可視浮水印的優點在於處理快速,但會有明顯的畫質影響。 由於可視浮水印對於畫面品質影甚大,因此多數的研究都集中於不可視浮水 印,但這不代表不可視浮水印不會破壞掩護媒體,要視嵌入位置與嵌入強度而 定,設計不良,往往會帶來比可視浮水印更多的失真。 而就破壞忍受程度來看,數位浮水印可分為「強韌型」(Robutness)與「易 碎型」(Fragile)。強健型浮水印多半應用於版權保護,將數位資料嵌入浮水印, 若它日遭到不法使用時,可將浮水印擷取出來,聲明版權。由於掩護媒體只要受 到輕微的破壞,易碎型浮水印就能夠反應出來,因此易碎型浮水印常應用於竄改 測偵。 就嵌入與偵測的方式來看,浮水印的嵌入、偵測若是採用直接更改圖片亮度 或灰階值,通稱為「空間域機制」(Spatial Domain Mechanism);而更改以數學 轉換過的係數,則稱為「轉換域機制」(Transform Domain Mechanism),或是稱 之為「頻率域機制」(Frequency Domain Mechanism)。
所謂空間域(Spatial Domain)的技術是以直接改變或調整圖片的像素值來 達成嵌入的目的。最典型的代表技術就是 LSB(Last Significant Bit)嵌入。以一 張灰階圖片為例,圖片中的每個像素值佔 1 個 Byte(8 個 Bit)。每 1 個 Byte 當 中最右邊的 Bit 稱為 LSB。此做法為直接修改像素值的較不重要的部份,更換為 我們的浮水印數列,以達到藏入數位浮水印之目的,方法快速,同時因為修改的 是位元組中最後面的幾個位元,對整個位元組的影響不大,因此對於畫質的影響
也很小。
頻率域技術不是直接修改像素值以藏入數位浮水印,而是先將圖片以「離散 餘弦轉換」(Discrete Cosine Transform, DCT)或「離散小波轉換」(Discrete Wavelet Transform, DWT),解析出低頻、中頻與高頻訊號後,再行嵌入浮水印。在頻率 域嵌入浮水印的優點是能選擇合適的頻率來嵌入浮水印。一般而言,頻率域浮水 印相較於空間域浮水印,更能夠忍受雜訊、壓縮等影像處理的攻擊。 由圖 2-2 可看出,一張圖片如果我們用 DCT 或 DWT 轉換後,其頻率域圖形 會所有差異。 原始圖片 經 DCT 後之頻率域 經4階 DWT 後之頻率域 圖 2- 2 DCT 與 DWT 頻率域圖形差異圖 如圖 2-3 所示,一個圖片中,若某個區域的內容較平滑,則該區域為低頻; 反之,區域中的像素彼此間差異甚大時,該區域為高頻,因此如果我們能夠只在 高頻區嵌入浮水印,肉眼就無法輕易的察覺出來。
圖 2- 3 高低頻區示意圖 圖 2-4 為一般浮水印系統的架構圖,首先,我們將浮水印數列(w)以可視 或不可視的方式嵌入到掩護媒體(CM)當中,使掩護媒體藏有浮水印訊息 (CMw)。接著,掩護媒體在傳輸或散佈過程中,可能會受到有意或無意的破壞 或攻擊,使浮水印數列產生變化(CMw’),最後可經由人眼或浮水印擷取演算法, 聲明出浮水印數列的存在。 圖 2- 4 一般嵌入與擷取模型[5] 低頻 高頻
2.1.4 數位浮水印的應用
影像數位浮水印的應用如下:
1、版權保護與認證(Copyright Protection and Authentication):
版權持有者可在產品中嵌入專屬的資訊,例如圖片或是以特定方式產生的亂 數。當有著作權糾紛時,原作者即可透過公開的偵測演算法從產品中偵測出與版 權資訊相關的浮水印,聲明其版權。 2、複製控制(Copy Protection): 將可否複製標籤直接作為浮水印嵌入產品中,燒錄機可憑此標籤判定能否複 製[12]。 3、廣播監控(Broadcast Monitoring): 將浮水印嵌入影片當中,監控系統可監視所有播放的情形,以便對播放有浮 水印的影片的頻道收取費用 [8]。 4、篡改偵測(Tampering Detection): 將產品本身的重要資訊,如圖片的特徵,當成浮水印嵌入產品中,或是以易 碎型浮水印技術嵌入浮水印,當無法偵測出浮水印時,就能知道圖片已遭到篡改。 5、影片品質預測(Video Quality Estimation):
藉由浮水印嵌入至影片當中,藉由浮水印被破壞的情形來反應影片品質[7]。 2.2 密碼分析 2.2.1 密碼學 戰爭是密碼學(Cryptography)的推手,西元前五世紀,斯巴達人便發明了 「移轉密碼」(Transposition Cipher)。移轉密碼的基本原理是將原文中的字元調 動位置,使得訊息的攔截者無法正確解讀當中的意義。在加密方式不斷推陳出新 後,開始有人反其道而行,研究如何破解這些被加密的訊息,這種技術的學問便 被稱為「密碼分析」(Cryptanalysis)。頻率分析法(Frequency Analysis)便是最 早 的 密 碼 分 析 法 。 若 現 有 一 密 文 是 以 單 一 字 元 替 代 法 ( Mono alphabetic substitution cipher)加密,即是將原本的字元以另一個字元或是符號來替代,假 設已知原文的語言結構為英語,在英語當中最常出現的字元是 E,因此在加密的
A(8.2%)及 O(7.5%)…等[15],依此類推,即有機會發現出原始訊息的涵義。 2.2.2 密碼系統的要素 一個完整的密碼系統,不外乎要達到下面的四個目標: 1. 私密性(Privacy): 確保在通訊的過程之中,別人無法偷窺到資料的內容。 2. 完整性(Integrity): 確保在從來源到最終目的地的通訊過程之中,資料不會被改變。 3. 身分確認(Authentication): 檢驗並確定通訊的雙方之真正身分。 4. 不可否認(Non-Repudiation): 不可否認資料之發送。 數位浮水印與密碼學要求可以說是一致的,同樣都是為了保護秘密而存在, 同樣也要求了私密性(不可視性)與完整性(強韌性),但數位浮水印提供了更 佳的保護措施,不似一般密文訊息,經過解密後就不再受到保護,但是數位浮水 印即使經過擷取,還是依然能夠承擔保護版權的作用。 2.2.3 密碼分析(Cryptanalysis) 傳統加密機制的破解有二種方法: 1、密碼分析(Cryptanalysis): 這種型式的破解是利用加密演算法的特性,試圖推算出原文或加密使用的金 鑰。 2、暴力破解(Brute-force Attack): 密碼分析者嘗試所以與隱密訊息有關的鑰匙,直到可以把密文轉為有意義的 明文為止。
依分析者擁有明文資訊的多寡,可將密碼分析分為表 2-1 所列之類型: 表 2- 1 密碼分析的類型 類型 分析者擁有的資訊 Cipher-text only 加密演算法 密文 Known plaintext 加密演算法 密文 一組或多組的密文–明文組合 Chosen plaintext 加密演算法 密文 分析者自選的明文及某個金鑰所產生 的密文 表 2-1 所示各類型當中,尤以「只知密文」(Cipher-text only)是最難破解的。 如果暴力解是不可行的,分析者就只能從分析密文本身來著手,通常會運用統計 的方式來嘗試破解。想要用這種方式破解時,破解者必須對被保護的明文有一些 基本的概念。
三、浮水印密碼分析攻擊
上一章節提及,一個完善的浮水印演算法必須具備的特性有:不可視 (Invisible)、強韌性(Robustness)、明確性(Unambiguous)、安全性(Security)…,等。 其中的不可視性、強韌性有相互取捨的考量。合理的情況下,當嵌入的資訊量增 加之後,自然能增加浮水印的強韌性,卻也因為藏入的資訊量大,使得其他人容 易察覺到浮水印的存在。相反地,當嵌入的資訊量減少時,其他人自然不容易察 覺出浮水印的存在,卻也因為藏入的資訊量較少,因而降低浮水印的強韌性。在 設計浮水印演算法時,不可視性和強韌性這二項因素不斷被考慮,而明確性因為 是法律判定上的重要依據,也會在進行「浮水印存在與否」的判別上被提及。 一般來說,數位浮水印可能遭遇到的攻擊分述如下: z 訊號處理: 訊號處理包含了數位–類比訊間的相互轉換、重新取樣(Re-sampling)、量 化(Quantization)等。 z 幾何變形: 幾何變形包括旋轉、切割、放大或縮小等。 z 共謀攻擊(Collusion attack): 將許多嵌有浮水印的副本不斷的組合起來,破壞當中的浮水印。 多數浮水印演算法提出者都會以上述的各項攻擊方式來測試自己浮水印演 算法的強韌性與可靠度,卻都較少以密碼分析(Cryptanalysis)的方式對演算法 進行安全性測試。針對到浮水印的安全性議題,2004 年,Das 和 Maitra[1]把浮 水印系統當成一個加解密系統,對浮水印演算法進行密碼分析,該文主要是針對 CKLS[2]的浮水印架構進行分析。 3.1 CKLS 浮水印演算法: 1997 年,Cox、Kilian、Leighton 與 Shamoon 四位學者共同提出「類似展頻」 (Spread spectrum like)的浮水印嵌入演算法。由於圖片的高頻區訊號容易在經 過一般濾波、壓縮後除去,因此 CKLS 演算法將浮水印訊息嵌入至圖片的低頻區 當中。每個頻率域當中的係數都有視覺容量(Perceptual capacity),即是能夠容 忍改變而又不產生畫質衰減的程度。他們將圖片視為一個通訊通道,而浮水印則是一個在此通道中傳輸的訊號。 嵌入程序: 圖 3-1 為嵌入流程示意圖,首先我們必須將原始圖形,經由 DCT 轉換,由 空間域轉換成頻率域,接下來再將浮水印加到圖形頻率域中絕對值最大的前 N 個 AC 係數值(不包括 DC 值)。最後再將此圖形利用 Inverse DCT 轉換回空間域, 完成整個加浮水印的程序。
( )
(
i i)
i IDCT DCT V X V' = +α ' i V :加入浮水印後的影像 α :強度係數 X :浮水印 i原始影像
頻率域
含有浮水印的影像
浮水印數列α
×
圖 3- 1 CKLS 嵌入流程圖 浮水印數列: 浮水印是一串實數的數字序列,而這個數字序列的產生必須滿足標準常態分 配,即浮水印數列X ~N( )
0,1 ,平均值為 0,變異數為 1,以確保每個浮水印數 列彼此之間都為獨立且無關,避免 Collusion attack。 擷取流程: 在擷取浮水印的過程中,我們反向推導上面公式,得到解浮水印公式為:( )
( )
α 1 1 ' ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − = i i i V DCT V DCT X ' i V :含有浮水印的影像 i V :原始影像 圖 3-2 為浮水印擷取與鑑別流程圖。在浮水印的偵測方面,我們先將待測的 圖片經由 DCT 轉換至頻率域,接著利用( )
α 1 1 ) ( ' ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − = i i i V DCT V DCT X 解出浮水印X 。 * 由於解出來的浮水印我們並不知道它是否與原始訊息相符,因此經常利用 Similarity 或 Normalized correlation 來做為浮水印真偽的判斷,公式如下:∑
∑
= = = N m m m N m m m w w w w w w Sim 1 ' ' 1 ' ' ) , (∑
∑
∑
= = = ′ ′ = 1 2 1 2 1 ' ) , ( m m N m m N m m m w w w w w w n Correlatio w:原始浮水印訊號 w’:擷取出來的浮水印訊號 我們將解出來的浮水印 X*以及原始浮水印 X 代入 Sim 中,如果得到的結果 大於某一個特定的門檻值,則我們便可以宣稱這兩個浮水印是相同的。反之,如 果小於某一特定的門檻值,則這兩個浮水印便不相同。含有浮水印的影像 頻率域 w 計算Sim或 Correlation 原始浮水印數列 > Threadhold? 含有浮水印 沒有浮水印 Y N 圖 3- 2 CKLS 擷取流程圖 3.2 CHU 浮水印演算法
2003 年,Wai C. Chu 提出了使用 Subsampling 的浮水印演算法[14],給予一張圖
v,v[n1, n2], n1 = 0, …,N1- 1, n2 = 0, …, N2-1。首先先將圖 v 以下列方式切割成四 張 Subimage: v1[n1, n2] = v[2n1, 2n2] v2[n1, n2] = v[2n1 + 1, 2n2] v3[n1, n2] = v[2n1, 2n2 + 1] v4[n1, n2] = v[2n1 + 1, 2n2 + 1] n1 = 0, …, N1/2 - 1, n2 = 0, …, N2/2 - 1 即如圖 3-3 所示,將原圖以 2×2 個 pixel 為一個單位,每單位中的每個 pixel 分別 分配到各 Subimage 當中。
v1 v2 v1 v2 v1 v2 v1 v2 v3 v4 v3 v4 v3 v4 v3 v4 v1 v2 v1 v2 v1 v2 v1 v2 v3 v4 v3 v4 v3 v4 v3 v4 v1 v2 v1 v2 v1 v2 v1 v2 v3 v4 v3 v4 v3 v4 v3 v4 v1 v2 v1 v2 v1 v2 v1 v2 v3 v4 v3 v4 v3 v4 v3 v4 圖 3- 3 Subimage 分配圖 Original image(256×256) Subimage 1(128×128) Subimage 2 Subimage 3 Subimage 4 圖 3- 4 Subsampling 後的結果
嵌入流程: z Step1:將 Subimage 進行 DCT 轉換。. z Step2:隨機挑出二張 Subimage,例如(1, 4)或(2, 4),進行相同位置的 DCT 係數比較,比較的位置是依 zigzag 順序決定(DC 值不參與比較)。 圖 3- 5 zigzag 順序圖 z Step3:令挑出來的二個係數一個為 Vi ,另一個為 Vj , 2 j i V V V = + ,若 α 6 ≥ − V V Vi j ,則不對 Vi 與 Vj嵌入浮水印。反之,將浮水印嵌入到 Vi與 Vj當中。嵌入方式如下:
(
)
(
X)
V V X V V j i α α − = + = 1 1 ' ' 浮水印數列 X 為標準常態分配,即X =0,δX =1。 Step4:將 Subimage 組合回原圖Original Image V1 V4 V3 V2 V1d V4d V3d V2d Coefficient comparison & Watermark Inserting DCT Subimage V1d' V4d' V3d' V2d' Watermarked Image V1' V4' V3' V2' Reconstruct IDCT 圖 3- 6 CHU 嵌入示意圖 由於每個浮水印數值嵌入的 Subimage 並是不固定的,因此 Subimage 的嵌入組 合,例如(1, 4)、(2, 3)、(3, 1)、…等,可以成為一把金鑰,縱然浮水印的嵌入 與取出演算法是公開的,但不具有金鑰者也無法順利地將浮水印取出。
取出流程: z Step1:Decode 端依同樣的方式將嵌有浮水印的圖片分成四張 Subimage。 z Step2:依據嵌入時的位置,將嵌有 Watermark 的係數取出。 z Step3:令挑出來的二個係數一個為U ,另一個為i U ,依下述方式取出浮水j 印: ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ + − = j i j i U U U U X α 1 ' 表 3- 1 Subimage 間的相似程度 Subimage i Subimage j PSNR 1 2 29.550705 1 3 32.281391 1 4 28.079046 2 3 29.261147 2 4 32.422520 3 4 29.541481 由表 3-1 可知,因為 Subimage 間彼此的相似度很高,Vi ≈Vj,i ≠ ,透過下列j 算式便可知,我們不需要原始圖片就能擷取出浮水印。
[ ]
(
[ ]
)
[ ]
(
[ ]
)
[ ]
Kn V[ ]
Kn X[ ] [ ]
n(
V Kn V[ ]
Kn)
V Kn V Kn V n X Kn V Kn V n X Kn V Kn V 2 1 2 1 ' 2 ' 1 2 ' 2 1 ' 1 ] [ ] [ 1 ] [ 1 ] [ + + − = − − = + = α α α[ ] [ ]
Kn X n V1 α 2 ≈ ∵V1'[Kn]−V2'[Kn]=V1(
1+αX[ ]
n)
+V2[ ]
Kn(
1−αX[ ]
n)
[ ]
[ ]
(
)
] [ 2 1 1 ] [ 1 1 Kn V n X n X Kn V ≈ − + + ≈ α α ∴V1'[ ]
Kn −V2'[Kn]≈(
V1'[ ]
Kn +V2'[Kn])
αX[ ]
n[ ]
[ ]
X[ ]
n Kn V Kn V Kn V Kn V ≈ + − α 1 ] [ ] [ ' 2 ' 1 ' 2 ' 13.3 CKLS 密碼分析攻擊
根據[1],CKLS 演算法存在著很大的安全缺口,攻擊者可以利用此一弱點, 輕易將浮水印資訊移除。Das 和 Maitra 所提出的攻擊方法屬於 2.2.3 節所述之「只 知密文攻擊」(Cipher text-only attack),即攻擊者擁有的資訊只有嵌入與取出演 算法,以及一張嵌有浮水印的圖片。攻擊流程如下:
z Step1:將 Watermarked image 進行 DCT 轉換並排序,並找出頻率域中絕對 值最大的前 N 個 AC 係數值 z Step2:保留最大的 50 個係數不變,其餘
(
N −50)
個係數遞增排序後進行迴 歸(Regression)分析,找出一 3 階迴歸方程式。由於排序後過的數值為一 單調遞增,因此可以找出相當高相關係數的迴歸方程式。 y = 0.000001888 x3 - 0.001912726 x2 + 0.650701850 x + 50.273196589 R2 = 0.976848203 0 100 200 300 400 500 600 700 800 0 100 200 300 400 500 600 700 800 900 1000 AC 係 數 值 Lena 迴歸多項式 圖 3- 7 不含有最大的50個係數時的曲線圖y = 0.000005354 x3 - 0.006304848 x2 + 2.095263401 x - 45.022378148 R2 = 0.763805414 -400 100 600 1100 1600 2100 2600 3100 0 100 200 300 400 500 600 700 800 900 1000 AC係數值 Lena 迴歸多項式 圖 3- 8 含有最大的50個係數時的曲線圖 由圖 3-7 及圖 3-8 可看出,若不先將最大的 50 個係數先捨去,會降低迴歸 曲線與係數分配曲線的相關係數。
z Step3:透過稍微修改迴歸方程式中的係數值,產生 M 張 Polynomial image。 保留其中相較於 Watermarked image 之 PSNR 值大於 30db 的 Polynomial image。
z Step4:將各張 Polynomial image I 與 watermarked imagedj i d I 進行統計分析, 找出一組平均值為α,變異數為 2 的數字序列 ( )i j d s , 。
(
[ ] [ ])
[ ] ] [ () ( ) ( ) ) , ( k I k I k I k sdi j = di − dj α djz Step5:將sd( )i,j 視為浮水印,嵌入至 watermarked image 中,產生 Attacked image。 3.4 密碼分析定理: 令x ,...,1 xn為原始圖片訊號,現有一組浮水印數列v ,...,1 vn,其平均值為 v , 標準差為δv,我們將它嵌入到圖片當中,因此一嵌有浮水印的圖片可視為:
(
v)
xt(
vt)
x1 1+α 1 ,..., 1+α 考慮另一組浮水印數列m ,...,1 mn,其平均值為 m ,標準差為δm,同樣的嵌 入至圖片後可得:(
α)
(
α)
由於二組浮水印間的關係常被假設為無關(Uncorrelatedness),因此m ,...,1 mt 與 v ,...,1 vt , 同 樣 地 , 我 們 可 以 令 它 們 之 間 的 關 係 為 無 關 。 為 了 了 解
(
v)
xt(
vt)
x1 1+α 1 ,..., 1+α 及x1(
1+αm1)
,...,xt(
1+αmt)
二者間的關係,我們以下列的 方式進行分析:(
)
(
)
(
)
(
k)
k k k k k v x v x m x α α α + + − + 1 1 1 ,k =1,...,t 其平均值為∑
= + − 1 2 k k v t v m α ,變異數為(
) (
)
t v m v m t k k k 2 2 1 − − −∑
= 以下為平均值的推演流程: 1.(
(
(
)
(
)
)
)
k k k k k k v x v x m x α α α + + − + 1 1 1 = k k k v v m α + − 1 2. 若α很小,則 k K v α α ≈ − + 1 1 1(
k K) (
k K)(
k)
K K K k v v m v m v m α α α = + − ≈ − − + − 1 1 1 1 3. K K k v m α + − 1 的平均數近似於(
)(
)
t v v m t k k K k∑
= − − 1 1 α(
)(
)
t v v m t k k K k∑
= − − 1 1 α =∑
(
)
= + − − t k k k k k k v m v v m t 1 2 1 α α =∑
= + − 1 2 k k v t v m α 以下為變異數的推演流程: 1.(
(
(
)
(
)
)
)
k k k k k k v x v x m x α α α + + − + 1 1 1 = k k k v v m α + − 1 2. 若α很小,則 k k k k k v m v v m − ≈ + − α 13. k k k v v m α + − 1 的變異數便會近似於
(
) (
)
t v m v m t k k k 2 2 1 − − −∑
= ,標準差為(
) (
)
t v m v m t k k k 2 2 1 − − −∑
= 推論: 考慮二組浮水印數列m ,...,1 mt與v ,...,1 vt,皆由一符合標準常態分配(平均值 為 0,標準差為 1)的亂數產生器所產生,計算(
(
)
(
)
)
(
k)
k k k k k v x v x m x α α α + + − + 1 1 1 的平均 值與標準差。 z 平均值:∑
= + − 1 2 k k v t v m α =∑
= + − t k t 1 1 1 0 0 α = α z 標準差:(
) (
)
t v m v m t k k k 2 2 1 − − −∑
= =(
) (
)
t v m t k k k 2 2 1 0 0− − −∑
= =(
)
t v m t k k k 2 1∑
= − =(
)
t v v m m t k k k k k∑
= + − 1 2 2=
∑
∑
= = + t k t k k k v t m t 1 1 2 2 1 1 = 1+1 = 2 由以上的證明可得知,若我們首先取得一張嵌有浮水印的圖片 Watermarked image,並以修改迴歸方程式的方式產生許多張與 Watermarked image 相似的 Polynomial image,將 Watermarked image 與 Polynomial image 嵌有浮水印的數值取出,並以
(
(
)
(
)
)
(
k)
k k k k k v x v x m x α α α + + − + 1 1 1 的方式進行統計分析後,若能得到一組平均 值為α,標準差為 2的數列s ,我們就能夠將k Polynomial image 視為一張嵌有 不同浮水印數列的 Watermarked image。 Polynomial image n 計算平均值 與標準差 平均值 = α? 標準差 = ? 建立並修改 迴歸方程式 2 Y Polynomial image 2 Polynomial image 1 Watermarked image Attacked image . . . . . 方程式 n 方程式 2 方程式 1 . . . . . . . . . . 圖 3- 9 密碼分析攻擊流程圖 3.5 攻擊實驗 以下我們將根據上述的方法進行攻擊實驗,使用與[3]相同的設定值,即浮 水印嵌入長度為 1000,強度設為 0.1。實驗所使用的圖片如圖 3-10。Bridge Couple Elaine F16
Fishboat Goldhill Lena Peppers 圖 3- 10 實驗所採用的圖片 表 3- 2CKLS 密碼分析攻擊結果表 圖片名稱 張數 平均 PSNR (w, a) 平均 correlation correlation[3] PSNR[3] Bridge 110 30.546389 0.171251 0.210 32.30 Couple 96 31.779536 0.116413 0.187 33.12 Elaine 99 30.695026 0.149967 0.232 32.07 F16 253 30.497470 0.091007 0.174 32.93 Fishboat 97 31.220406 0.118499 0.180 32.43 Goldhill 425 32.665145 0.095310 0.171 34.83 Lena 164 31.152823 0.090569 0.178 33.88 Peppers 114 30.126955 0.139663 0.181 31.93
表 3- 3 CHU 密碼分析攻擊結果表 圖片名 稱 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR Bridge 127 24 259 117 0.129702 35.16832 Couple 384 1107 147 64 0.105081 34.75419 Elaine 335 252 427 341 0.153919 34.86407 F16 142 360 262 320 0.085799 34.60532 Fishboat 198 344 77 32 0.044144 35.56868 Goldhill 60 140 310 149 0.024452 37.10776 Lena 15 157 65 33 0.107589 35.09609 Peppers 523 526 428 380 0.01631 35.15919 由表 3-2 及表 3-3 的實驗結果可以明顯看出,遭受攻擊的圖片,其浮水印的 correlation 都會降到 0.2 以下。 3.6 JPEG 壓縮攻擊 本節中我們採用最常見的 JPEG 壓縮對 CKLS 浮水印演算法進行攻擊,攻擊 圖片依序為 Lena、Peppers 及 Fishboat,結果分別如表 3-4、表 3-5 及表 3-6:
表 3- 4 Lena 經 JPEG 壓縮攻擊後的結果
JPEG 品質 correlation Sim PSNR(Original image, Attacked image) 100 0.999522 30.998795 34.831482 90 0.998261 30.959661 33.865082 80 0.993566 30.814070 32.920021 70 0.983610 30.505302 32.264618 60 0.973384 30.188158 31.681620 50 0.964672 29.917946 31.227938 40 0.943976 29.276083 30.740879 30 0.897801 27.844059 30.180431 20 0.805601 24.984600 29.293552 10 0.528603 16.393888 27.426920 1 0.035235 1.092753 17.201916 表 3- 5 Peppers 經 JPEG 壓縮攻擊後的結果
JPEG 品質 correlation Sim PSNR(Original image, Attacked image) 100 0.999586 31.000757 33.648506 90 0.998419 30.964563 32.901035 80 0.994815 30.852787 32.236938 70 0.987977 30.640739 31.788435 60 0.980032 30.394323 31.333050 50 0.969595 30.070648 31.003012 40 0.956847 29.675280 30.613396 30 0.919209 28.507986 30.133951 20 0.850471 26.376165 29.283171 10 0.599955 18.606775 27.488588 1 0.085544 2.653031 16.513758
表 3- 6Fishboat 經 JPEG 壓縮攻擊後的結果
JPEG 品質 correlation Sim PSNR(Original image, Attacked image) 100 0.999530 30.999044 32.855469 90 0.997592 30.938931 32.010094 80 0.992827 30.791147 31.110771 70 0.982719 30.477663 30.451683 60 0.971138 30.118490 29.907721 50 0.956985 29.679567 29.449350 40 0.936007 29.028942 28.918043 30 0.885984 27.477552 28.271402 20 0.784435 24.328144 27.360588 10 0.525643 16.302094 25.613794 1 -0.012127 -0.376113 17.742254 由表 3-4、表 3-5 及表 3-6 的結果可以發現,JPEG 欲將 correlation 攻擊至 0.2 以下時,PSNR 卻需要降到 17db 以下。由以上實驗結果可知,Das 和 Maitra 的 提出的密碼分析攻擊是一個相當有效的攻擊策略,當 correlation 下降至 0.2 以下 時, PSNR 相較於原圖仍能大於 29db。
四、利用圖片攪亂提升安全性
4.1 CKSL演算法的改進 4.1.1 圖片攪亂 浮水印演算法的安全性通常可透過使用金鑰、紀錄浮水印嵌入過程的資訊 (浮水印藏入的位置、浮水印產生的方式…,等)來達成。 除了增加額外的金鑰之外,有些浮水印演算法利用 Chaos 的觀念[11],先對 圖片進行攪亂的前置處理,再將浮水印嵌入至攪亂的圖片中,浮水印資訊嵌入 後,再將圖片還原。 由於圖片攪亂類似於亂數重排,我們只需要使用記錄打亂時的亂數種子即 可,需要增加額外的空間儲存空間也僅是一個整數的大小,便能提高安全性,同 時,由於 Das 和 Maitra 的密碼分析攻擊藉由是重建嵌有浮水印的係數,因此, 若我們能夠打亂嵌入位置,就能夠增加分析的困難。 4.1.2 浮水印演算法的改進 原始影像 頻率域 浮水印數列 α × 經攪亂過後的原始影像 嵌有浮水印的攪亂影像 嵌有浮水印的還原影像 圖 4- 1 浮水印演算法改進圖 由圖 4-1 可看出,嵌入流程大致上仍如同原本的 CKLS 演算法,但是在嵌入 浮水印之前,會加入「圖片攪亂」的前置處理動作,嵌入後,則加上攪亂還原的 動作,如此便完成整個嵌入的動作。由於本文所提出的演算法會在原本 CKLS及 CHU 演算法嵌入浮水印前多一步攪亂(Scrambling)的動作。 浮水印演算法會因為不同的圖片結構,產生不一樣的實驗結果,雖然我們並 沒有大幅更動 CKLS 演算法,但當我們加上攪亂前處理之後,攪亂圖片和原圖會 有很大的差異,幾乎等於是針對不同的圖片嵌入浮水印。因此,接下來進行將 JPEG 壓縮攻擊實驗,比較改良過後的演算法與原始演算法間的差異。 4.2 攪亂演算法與密碼分析攻擊 由第三章的密碼分析攻擊結果可知,密碼分析攻擊具有相當顯著的攻擊效 果,因此以下將以密碼分析攻擊本文所提出的攪亂演算法,看看密碼分析攻擊是 否仍然具有相同地效果。 我們將攪亂單位分成五種,分別為 1×1、2×2、4、4、8×8 與 16×16 個 Pixel 為一個攪亂單位進行攪亂,試圖了解不同的攪亂單位是否會對密碼分析攻擊帶來 不同結果。浮水印嵌入長度同樣為 1000,強度為 0.1。首先先針對 CKLS 浮水印 演算法進行測試。 原圖 攪亂單位:1×1 個 Pixel 攪亂單位:8×8 個 Pixel 圖 4- 2 攪亂單位差異圖
表 4- 1 CKLS 經過攪亂前處理後的密碼分析攻擊結果 Bridge 張數 最佳 PSNR (w, a) 最佳 PSNR 的 correlation 平均 PSNR (w, a) Max correlation Min correlation 平均 correlation 1×1 552 34.145588 0.937212 31.280602 0.940223 0.761991 0.852710 2×2 552 34.215813 0.912995 31.359640 0.913115 0.714795 0.817349 4×4 509 34.228294 0.883220 31.237510 0.883280 0.649020 0.759674 8×8 595 34.026249 0.786150 31.243336 0.791380 0.525104 0.661918 16×16 614 31.183960 0.702279 29.569861 0.705269 0.469818 0.577908 Couple 張數 最佳 PSNR (w, a) 最佳 PSNR 的 correlation 平均 PSNR (w, a) Max correlation Min correlation 平均 correlation 1×1 635 35.464481 0.914130 31.789358 0.914765 0.632608 0.752678 2×2 642 35.443802 0.885933 31.783535 0.888847 0.578019 0.710867 4×4 630 35.499359 0.821756 31.723779 0.821756 0.515294 0.636303 8×8 685 35.694969 0.762033 31.879893 0.763137 0.396047 0.550855 16×16 686 35.371483 0.659755 31.900590 0.671121 0.293990 0.463629 Elaine 張數 最佳 PSNR (w, a) 最佳 PSNR 的 correlation 平均 PSNR (w, a) Max correlation Min correlation 平均 correlation 1×1 554 35.124775 0.934062 31.457246 0.935901 0.666149 0.785768 2×2 542 35.050591 0.904979 31.419616 0.904979 0.616439 0.740832 4×4 550 35.053596 0.858486 31.315387 0.858486 0.576453 0.693809 8×8 578 34.956112 0.761160 31.408446 0.761160 0.422219 0.563086 16×16 567 34.767490 0.694164 31.364756 0.694164 0.391039 0.511814 F16 張數 最佳 PSNR (w, a) 最佳 PSNR 的 correlation 平均 PSNR (w, a) Max correlation Min correlation 平均 correlation 1×1 322 33.575188 0.919866 30.517954 0.921416 0.704926 0.786810 2×2 337 33.561066 0.900100 30.559173 0.900866 0.692031 0.769909 4×4 319 33.561455 0.832953 30.523150 0.832953 0.595592 0.675811 8×8 228 33.394653 0.664818 30.318494 0.664818 0.421408 0.498009 16×16 329 33.280254 0.670310 30.519166 0.672171 0.424565 0.510355
Fishboat 張數 最佳 PSNR (w, a) 最佳 PSNR 的 correlation 平均 PSNR (w, a) Max correlation Min correlation 平均 correlation 1×1 687 36.439678 0.953250 31.285648 0.953250 0.699997 0.795415 2×2 726 36.143764 0.917480 31.606330 0.917480 0.636104 0.753133 4×4 508 36.458817 0.870987 31.065589 0.870987 0.544927 0.653449 8×8 606 36.136391 0.812164 31.397683 0.812845 0.457839 0.587363 16×16 467 35.496532 0.619761 30.859346 0.619761 0.308409 0.420359 Goldhill 張數 最佳 PSNR (w, a) 最佳 PSNR 的 correlation 平均 PSNR (w, a) Max correlation Min correlation 平均 correlation 1×1 722 37.066360 0.961619 32.073837 0.961619 0.762147 0.857335 2×2 730 36.992828 0.947547 32.075126 0.947547 0.687322 0.814691 4×4 776 36.968658 0.908356 32.073660 0.908356 0.661017 0.764905 8×8 695 36.763206 0.848060 31.947667 0.848060 0.529557 0.639704 16×16 789 36.993179 0.785413 31.980110 0.785413 0.385622 0.525471 Lena 張數 最佳 PSNR (w, a) 最佳 PSNR 的 correlation 平均 PSNR (w, a) Max correlation Min correlation 平均 correlation 1×1 1764 34.082161 0.925558 31.289007 0.927666 0.707798 0.813541 2×2 773 34.118923 0.758118 31.322051 0.895364 0.646708 0.775724 4×4 796 33.945366 0.844593 31.256176 0.844593 0.575173 0.713563 8×8 763 33.989929 0.736145 31.289621 0.736145 0.481921 0.606391 16×16 799 33.875088 0.661373 31.262027 0.667992 0.411200 0.540423 Peppers 張數 最佳 PSNR (w, a) 最佳 PSNR 的 correlation 平均 PSNR (w, a) Max correlation Min correlation 平均 correlation 1×1 564 32.602261 0.917212 30.793187 0.917212 0.738898 0.840147 2×2 534 32.598080 0.883985 30.808755 0.883985 0.693635 0.799053 4×4 495 32.633114 0.816085 30.818460 0.816085 0.609667 0.724437 8×8 550 32.789223 0.722350 30.865739 0.724143 0.503296 0.624202 16×16 547 32.487698 0.628156 30.738578 0.628156 0.441466 0.544262 由以上實驗可發現,圖片攪亂對於浮水印安全性確有提升作用,即使經過密 碼分析攻擊後,correlation 依舊能維持在 0.5 以上。 接下來再針對 CHU 浮水印演算法進行攪亂:
表 4- 2 以 Random 方式對 CHU 進行攪亂 攪亂 單位 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR 1×1 515 490 437 490 0.077909 35.13524 Peppers 8×8 531 468 439 489 0.069349 34.48498 攪亂 單位 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR 1×1 118 258 243 304 0.019064 35.72741 F16 8×8 132 247 262 320 0.034773 35.63779 攪亂 單位 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR 1×1 176 138 4 10 0.10587 6 35.80961 Fishboat 8×8 47 180 5 11 0.132118 35.9219 由於攪亂後的結果並不理想,因此我們改採以 Fibonacci 方式攪亂,並採用 三種不同的攪亂策略,分別為 1、使用原圖攪亂,2、對 Subimage 攪亂,3、對 Subimage 攪亂(使用不同的攪亂種子)。 表 4- 3 原圖(256×256)以 Fibonacci 方式攪亂: 攪亂 單位 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR 1×1 9 30 4 53 0.103831 35.18429 Peppers 8×8 431 30 5 70 0.155301 35.11256 攪亂 單位 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR 1×1 117 269 290 307 0.015564 35.8177 F16 8×8 516 259 721 320 0.069237 35.727867
表 4- 4 每張 Subimage 以 Fibonacci 方式攪亂: 攪亂 單位 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR 1×1 7 27 5 44 0.495835 35.07117 Peppers 8×8 463 59 5 44 0.073507 35.01398 攪亂 單位 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR 1×1 104 285 262 320 0.203985 35.73533 F16 8×8 329 79 262 320 0.018448 35.60674 表 4- 5 每張 Subimage 以 Fibonacci 方式攪亂(使用不同的攪亂種子): 攪亂 單位 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR 1×1 8 36 4 44 0.091258 35.15490 Peppers 8×8 23 18 6 44 0.143178 35.10386 攪亂 單位 Subimage1 的張數 Subimage2 的張數 Subimage3 的張數 Subimage4 的張數 平均 correlation 平均 PSNR 1×1 145 307 262 320 0.099374 35.63076 F16 8×8 72 373 262 320 0.096409 35.802299 由以上實驗結果得知,以先分成 4 張 Subimage 後,每張 Subimage 再以 1×1 及相同攪亂種子攪亂,所能獲得的安全性為最高,因此以下將以此種方式對於其 它圖片進行測式,並採用不同的攪亂方法。
表 4- 6 CHU 經過 Fibonacci 後的密碼分析攻擊結果 攪亂單位(1×1) correlation PSNR correlation[3] PSNR[3] Bridge 0.202520 36.193825 0.191 34.39 Couple 0.311170 35.828552 0.158 34.87 Elaine 0.310561 34.875278 0.168 34.53 F16 0.395835 35.07117 0.114 35.14 Fishboat 0.173430 36.097137 0.137 34.02 Goldhill 0.310729 37.793503 0.124 36.11 Lena 0.307535 35.628736 0.113 34.78 Peppers 0.395835 35.07117 0.092 35.32 表 4- 7 CHU 經過 Random 後的密碼分析攻擊結果 攪亂單位(1×1) correlation PSNR correlation[3] PSNR[3] Bridge 0.324466 36.136440 0.191 34.39 Couple 0.315988 34.532841 0.158 34.87 Elaine 0.307253 35.047394 0.168 34.53 F16 0.330752 35.631170 0.114 35.14 Fishboat 0.302009 35.960284 0.137 34.02 Goldhill 0.361170 37.505314 0.124 36.11 Lena 0.315030 35.894715 0.113 34.78 Peppers 0.437862 35.109879 0.092 35.32 經由以上實驗並與[3]比較後可看出,圖片攪亂即使對於 CKSL 及 CHU 浮水 印演算法仍具有提升安全性的作用,即使經過密碼分析攻擊後,correlation 依舊 能維持在 0.3 以上。 4.3 攪亂演算法與密碼分析攻擊小結 由 4.2 節的實驗可知,攪亂演算法對於密碼分析攻擊具有良好的防護效果, 不論攪亂單位是 1×1 或 8×8,correlation 都還能維持在 0.3 以上。 在 CKLS 不同攪亂單位的實驗可以發現,以 1×1 為攪亂單位時,correlation 能維持在 0.7 至 0.9 之間;以 8×8 為攪亂單位時,correlation 則維持在 0.5 至 0.7
之間,圖片攪亂能夠成功提升浮水印安全性,嘗試分析其原因如下: 圖 4-4 為 Lena 在不同攪亂單位下,空間域圖形與頻率域浮水印嵌入位置圖 (白點)。由以上空間域與頻率域浮水印嵌入位置可以發現,當我們先將圖片攪 亂再嵌入浮水印時,若攪亂的單位愈小,浮水印分佈的位置會愈分散於各頻區。 由於我們將浮水印嵌入後,會將攪亂的圖片還原,所以當攻擊者取得嵌有浮 水印的圖片並且想要透過迴歸分析進行 DCT 係數重建時,重建的位置會趨於左 上角,也就是與 Original 的嵌入位置相同,但其實我們將圖片攪亂後,嵌入的位 置是相當分散的,攻擊者無法找出正確的位置並加以分析與重建,因此縱然試圖 攻擊後,我們還是能夠取出正確的浮水印。 但對於 CHU 浮水印演算法而言,浮水印嵌入位置依照 zigzag 順序嵌入,但 CKLS 則是選擇前 N 大嵌入,CKSL 在經過攪亂後,前一千大的位置會有所改變, 但 CHU 的方法並不會,攻擊者比較能夠準確地針對嵌有浮水印的位置進行係數 重建,因此攪亂前處理在 CHU 的方法上,略遜於 CKLS。相關的多項式係數表 列表文末的附錄中。
Original 1×1 2×2 空 間 域 頻 率 域 4×4 8×8 16×16 空 間 域 頻 率 域 圖 4- 4 不同攪亂單位下之浮水印係數分佈圖
4.4 圖片強韌性 浮水印演算法會因為不同的圖片結構,產生不一樣的實驗結果,雖然我們並 沒有大幅更動 CKLS 演算法,但當我們加上攪亂前處理之後,攪亂圖片和原圖會 有很大的差異,幾乎等於是針對不同的圖片嵌入浮水印。因此,接下來將進行影 像處理攻擊實驗,比較改良過後的演算法與原始演算法的差異。影像處理攻擊的 方式如下: z JPEG Compression JPEG 壓縮攻擊是一種頻率域攻擊:將圖片分成 8x8 的區塊大小,對每一個 區塊進行 DCT 轉換,移除高頻的部份,然後進行反向 DCT 轉換回空間域的圖片。 z Median Filter
Median Filter 通常用於移除影像中多餘的雜訊(Noise),不過也會因此造成影 像的模糊化。
z Pixel Shift
讓影像中的每一列像素都向右位移 n 個像素,並將最右方超出影像邊界的 n 列像素搬移至影像的最左方,形成一個向右位移的循環。
z Rotation and Scaling
此種攻擊方法是以圖片的中心點為圓心,進行順時針與逆時針的旋轉,然後 再對旋轉之後的圖片進行裁切修正的處理,使其維持與原圖一樣的大小。
影像處理攻擊實驗裡,我們將攪亂的方式分為五種,分別為 1×1、2×2、4×4、 8×8 及 16×16 個 Pixel 構成一個攪亂單位進行攪亂,觀察不同的攪亂單位的圖片 與無攪亂圖片之間的強韌性差異。首先先針對 CKLS 浮水印演算法進行實驗。
圖 4- 5 CKLS 影像處理攻擊結果圖(Bridge)
圖 4- 7 CKLS 影像處理攻擊結果圖(Fishboat)
圖 4- 9 CKLS 影像處理攻擊結果圖(Lena)
圖 4- 11 CKLS 影像處理攻擊結果圖(Couple)
由以上實驗結果可看出,不論是在何種攻擊類型上,8×8 擾亂能提供最佳的 強韌性。
接下來再針對 CHU 浮水印演算法進行實驗:
圖 4- 14 CHU 影像處理攻擊(Lena)
圖 4- 16 CHU 影像處理攻擊(Couple)
圖 4- 18 CHU 影像處理攻擊(Goldhill)
為了解不同擾亂單位下強韌性的差異,本研究進一步對於不同攪亂單位下嵌 有浮水印的前一千大係數進行平均值計算:
實驗結果發現,以 8×8 擾亂過後的圖片經 DCT 轉換後,能提供較高的 DCT 係數值藏入較多的資訊量,致使提升了整體浮水印的強韌性。 由影像處理攻擊的實驗可知,1×1 攪亂會降低浮水印的強韌性,8×8 攪亂卻 有提升浮水印強韌性的效果,雖然在安全性上,8×8 攪亂的保護性不如 1×1 攪亂, 但仍能將 correlation 維護在 0.5 以上,因此就強韌性與安全性兼顧的設計要點來 看,8×8 攪亂應為一較好的攪亂單位。另外,由於 CHU 浮水印演算法本身具有 盲擷取的特性,因此在強韌性上較 CKSL 為差,同時不論是以何種攪亂方式攪 亂,都不會像 CKLS 浮水印演算法般出現一種趨勢性。 4.5 圖片特徵值 由前一節的實驗結果得知,攪亂演算法對於密碼分析攻擊具有良好的抵抗能 力,密碼分析者是否能在攻擊前發覺此含有浮水印的圖片,在嵌入程序時有將圖 片攪亂呢?圖片特徵值是否有所改變?以下我們採用[9]所提出的影像特徵值作 分析。 4.5.1 圖片特徵值分析 由 2.1.3 節可知,一張圖片可以分成空間域與頻率域。透過轉換處理,將圖 片由空間域轉換成頻率域後,可以將圖片不同頻率的個別濾出,產生高低頻帶。 由於一張嵌有浮水印的圖片以空間域呈現時,我們很難用肉眼察覺出是否經過攪 亂前處理,因此在分析圖片特徵值時,我們首先將以 CKLS 浮水印演算法嵌入浮 水印的圖片進行 DCT 轉換為頻率域,分別對低頻、中頻、高頻區進行分析。實 驗使用的特徵值包括下列 8 項: 1. Energy: 1
∑
( )
2 i i I N 用以計算目標資料的能量大小。簡而言之,即是目標資料的平均絕對值。當 數值越大,代表目標資料的能量越大。若用在計算小波係數值,當數值越大,代 表可以藏入的浮水印空間較大。2. Normal entropy: 1 log
( )
I( )
i 2 N−
一個資訊來源輸出所得的平均資訊量。隨著數值大小的增加,代表更多的不確定 性,因而有更多的資訊將伴隨資料來源。」因此,當 Entropy 數值越大,目標資 料越雜亂且不確定。 3. Kurtosis: 1
( )
3 4 − ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ −∑
i mean i I N δ 此特徵值稱為峰態,可以計算目標資料的分布情況。當數值接近零,代表數 值分佈接近常態分布。若是數值大於零,代表統計的 Histogram 形狀較陡;若是 數值小於零,則形狀較平緩。4. Log Energy entropy:
∑
( )
( )
( )
ii I i I log
如同特徵值的名字,此種 Entropy 是在 Energy 的公式中多加上一個 log 運算 元。如同 Entropy,可以用來計算資訊量。
5. Range:max−min
如公式所呈現,此為最大值與最小值的差距。
6. Shannon entropy: 1 I
( )
i 2log( )
I( )
i 2 N−
依據提出此一量測值的數學家 Claude Shannon 而命名,同樣是計算能量不確 定性的特徵值。雖然已有標準的 Entropy 特徵值可以使用,但因為 Shannon Entropy 也是一項常用的量測值,所以一併作為統計觀察的特徵值使用。 7. Skewness:
( )
3 1∑
⎟ ⎠ ⎞ ⎜ ⎝ ⎛ − i mean i I N δ 此特徵值稱為偏態,可以計算目標資料的分布情況。當數值接近零,代表資 料多集中在中間數值。數值越大,資料多集中在較大的數值區;數值越小,資料 則多集中在較小的數值區。 8. Variance:(
( )
)
2 1 1∑
− − i mean i I N 變異數是用來衡量資料的變異情形,變異數越大,表示資料越分散。圖 4- 22 一張 256×256 圖片各頻區的係數個數分佈圖
我們實驗所採用的圖片大小為 256×256,此種尺寸的圖片,其經過 DCT 轉 換後,各頻區的係數個數如圖 4-20 所示,低頻區含有 12987 個數值,中頻區含 有 46228 個數值,高頻區含有 6321 個數值。
Range(低頻區) 31500 32000 32500 33000 33500 34000 34500 35000 35500 36000 36500 37000 Range_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 23 CKLS_Range(低頻區特徵值) Range(中、高頻區) 0 20 40 60 80 100 120 140 Range_m Range_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 24 CKLS_Range(中高頻區特徵值) 由圖 4-21 及 4-22 可以看出,不論是在低頻區或中高頻區,有無攪亂的圖片, 其係數的 Range 都幾乎為一致。
Variance(低頻區) 50000 51000 52000 53000 54000 55000 56000 57000 58000 59000 60000 Variance_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 25 CKLS_Variance(低頻區特徵值) Variance(中、高頻區) 0 20 40 60 80 100 120 140 Variance_m Variance_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 26 CKLS_Variance(中高頻區特徵值) 由圖 4-23 及 4-24 可以看出,不論是在低頻區或中高頻區,有無攪亂的圖片, 其係數間的變異程度都沒有產生太大的差異。
Energy(低頻區) 50000 51000 52000 53000 54000 55000 56000 57000 58000 59000 60000 Energy_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 27 CKLS_Energy(低頻區特徵值) Energy(中、高頻區) 0 20 40 60 80 100 120 140 Energy_m Energy_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 28 CKLS_Energy(中高頻區特徵值) 由圖 4-25 及 4-26 可以看出,不論是在低頻區或中高頻區,有無攪亂的圖片, 其頻區的能量都幾乎為一致。
Log Energy(低、中、高頻區) -6 -5 -4 -3 -2 -1 0
Le_l Le_m Le_h
Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 29 CKLS_Log Energy(低中高頻區特徵值) 由圖 4-27 可以看出,不論是在低頻區或中高頻區,有無攪亂的圖片,其 Log Energy 皆近乎相同。 Shannon(低頻區) -1200000 -1150000 -1100000 -1050000 -1000000 -950000 Sha_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 30 CKLS_Shannon(低頻區特徵值)
Shannon(中、高頻區) -800 -700 -600 -500 -400 -300 -200 -100 0 Sha_m Sha_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 31 CKLS_Shannon(中高頻區特徵值) 由圖 4-28 及 4-29 可以看出,不論是在低頻區或中高頻區,有無攪亂的圖片, 其 Shannon Entropy 幾乎無異。 Entropy(低頻區) 0 2 4 6 8 10 12 14 16 18 20 Entropy_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 32 CKLS_Entropy(低頻區特徵值)
Entropy(中、高頻區) -0.08 -0.06 -0.04 -0.02 0 0.02 0.04 Entropy_m Entropy_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 33 CKLS_Entropy(中高頻區特徵值) 由圖 4-30 及 4-31 可以看出,Lena 及 Peppers 這二張圖,其有無攪亂的圖片, 在中頻區產生較大的差異,但是 Fishboat 卻未出現相同的現象。 Skewness(低頻區) 104 106 108 110 112 114 116 118 120 122 124 Skewness_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 34 CKLS_Skewness(低頻區特徵值)
Skewness(中、高頻區) -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03 Skewness_m Skewness_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 35 CKLS_Skewness(中高頻區特徵值) 由圖 4-32 及 4-33 可以看出,不論是在低頻區或中高頻區,有無攪亂的圖片, 其偏態都呈現一致。 Kurtosis(低頻區) 13500 14000 14500 15000 15500 16000 16500 17000 Kurtosis_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 36 CKLS_Kurtosis(低頻區特徵值)
Kurtosis(中、高頻區) 0 0.5 1 1.5 2 2.5 Kurtosis_m Kurtosis_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 37 CKLS_Kurtosis(中高頻區特徵值) 由圖 4-34 及 4-35 可以看出,不論是在低頻區或中高頻區,有無攪亂的圖片, 其峰態都呈現一致。 接下來以 CHU 浮水印演算法嵌入的實驗中,我們所採用的圖片為第一張 Subimage(大小為 128×128),其經過 DCT 轉換後,各頻區的係數個數如圖 4-36 所示,低頻區的數值共有 3278 個,中頻區有 11556 個,高頻區有 1550 個。 圖 4- 38 一張 128×128 圖片各頻區的係數個數分佈圖
Range(低頻區) 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 Range_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 39 CHU_Range(低頻區特徵值) Range(中、高頻區) 0 20 40 60 80 100 120 140 160 180 Range_m Range_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 40 CHU_Range(中高頻區特徵值)
Variance(低頻區) 0 2000 4000 6000 8000 10000 12000 14000 16000 Variance_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 41 CHU_Variance(低頻區特徵值) Variance(中、高頻區) 0 50 100 150 200 250 300 Variance_m Variance_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 42 CHU_Variance(中高頻區特徵值)
Energy(低頻區) 0 2000 4000 6000 8000 10000 12000 14000 16000 Energy_l Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 43 CHU_Energy(低頻區特徵值) Energy(中、高頻區) 0 50 100 150 200 250 300 Energy_m Energy_h Lena Lena_s Peppers Peppers_s Fishboat Fishboat_s 圖 4- 44 CHU_Energy(中高頻區特徵值)