The invention of the Internet and the wide spread of the computers, scanners and the printers make it simply easy to gain, exchange and transport the digital media data. However , the bad guys and units can copy and transport the documents with the copyright at their minds through the internet. Digital watermarking is an effective way to solve this problem.
The paper had mainly discusses the semi-fragile digital water- marking, a branch of the digital water-marking. At first this paper introduces the universe conception and methods of the digital water- marking. Then it gives a few of the common algorithms of semi-fragile water-marking. At last it proposes an algorithm to cover the request of the research. It is divided into four parts including the preprocessing of the water-marking, the embedding of it, the detection of it, and the attack-detecting. Then it gives the results of the experiment and analysis it. The simulation platform is the Matlab 6.5.
At the last of this paper, the estimation and the forecast to the semi-fragile water marking are proposed.
KEY WORDS : copyright protection, digital watermarking,
semi-fragile, Matlab
目 錄
目 錄 I
摘要 III
ABSTRACT IV
第一章 緒論 1
1.1 課題研究意義 1
1.1.1 使用數字水印的必要性 1
1.1.2 使用半脆弱數字水印的必要性 3
1.1.3使用半脆弱數字水印的優點 3
1.1.4 課題目標 4
1.2半脆弱數字水印的研究現狀 4
1.3 論文的組織 5
第二章 相關技術與設計環境概述 7
2.1 數字水印的概念 7
2.1.1 數字水印的基本概念 7
2.1.2 半脆弱數字水印的基本概念 10
2.1.3 半脆弱數字水印的實現方法 10
2.2 算法性能指標簡介 12
2.3 仿真介紹 13
第三章 圖像認證半脆弱水印算法原理與總體設計 15
3.1 用于圖像認證算法的特殊要求分析 15
3.2 實現認證功能的總體設計 15
3.2.1模塊劃分 16
3.2.2算法框架圖 16
第四章 圖像認證半脆弱水印算法的詳細設計與實現 19
4.1 算法思路 19
4.2 各步驟詳細設計 19
4.2.1水印預處理的實現 19
4.2.2水印嵌入的實現 21
4.2.3水印檢測的實現 22
4.3 實驗結果與分析 23
第五章 總結與展望 30
5.1 本文所做的工作總結 30
5.2 工作展望 30
參 考 文 獻 32
致 謝 34
附 錄1 35
1.1 程序清單 35
摘要
因特網的出現以及計算機、掃描儀和打印機的廣泛使用使得數字化多媒體數據的獲取、交換和傳輸變得異常簡單。但是通過網絡傳播數據也使有惡意的個人或團體在沒有得到數據文件所有者許可的情況下能肆意地復制和傳播有版權保護的文檔。數字水印技術則為這種問題提供了一個潛在的解決方案。
論文研究的方向–半脆弱(Semi-fragile)數字水印,是數字水印(Digital Watermarking)的一個重要分支。論文首先介紹了水印技術的通用概念和方法,然后介紹了半脆弱水印的幾種常見算法,在此基礎上提出了一種能抗幾種典型攻擊的半脆弱算法。本算法實現分成四個部分,水印預處理,水印嵌入,水印檢測,攻擊檢測。通過實驗可以看出,算法能有效實現圖像認證的功能。算法用Matlab6.5實現仿真。
最后,對半脆弱水印技術所存在的問題和未解決的難題進行了思考,并對其之后的發展方向進行了展望。
關鍵詞 版權保護 數字水印 半脆弱 Matlab
ABSTRACT
第一章 緒論
計算機和網絡的廣泛應用,大大地方便了人們獲取信息和交流信息。由于數字化信息以多種形式在網絡上迅速便捷地傳輸,政府、企業及個人都逐漸把網絡作為主要的通信手段,大量重要文件和個人信息以數字化形式存儲和傳輸,電子商務則通過網絡為我們提供了各種服務,網絡與信息安全問題變得越來越重要。
傳統的信息加密方法可以加密文本信息,保證其傳輸的安全,但如果要對圖像、視頻和聲音等多媒體信息進行加密,則基于密碼學的傳統加密方法就比較困難了,隨著計算機處理能力的快速提高,這種通過不斷增加密鑰長度來提高系統密級的方法變得越來越不可靠。特別是隨著網絡多媒體技術的發展,信息已經不僅僅局限于文本,許多信息是圖形圖象和視頻格式,需要認證和版權保護的聲像數據也越來越多。此外,在軍事領域,人們可能需要將一幅作戰地圖隱藏在一幅藝術作品中。這些應用需求正是數字水印技術要解決的問題。
1.1 課題研究意義
1.1.1 使用數字水印的必要性
數字水印(Digital Watermarking)技術是通過一定的算法將一些標志性信息直接嵌入到多媒體內容當中,但不影響原內容的價值和使用,并且不能被人的知覺系統覺察或注意到,只有通過專用的檢測器或閱讀器才能提取。其中的水印信息可以是作者的序列號、公司標志、有特殊意義的文本等,可用來識別文件、圖像或音樂制品的來源、版本、原作者、擁有者、發行人、合法使用人對數字產品的擁有權。嵌入數字多媒體作品中的數字水印須具有以下特性:
(1)不可見性或隱蔽性:不易被察覺,不會引起原來數字作品明顯的圖像質量下降,即看不到數字水印的存在;
(2) 魯棒性:即當被保護的信息經過某種改動后,比如在傳輸、壓縮、濾波,圖像的幾何變換如平移、伸縮、旋轉、剪裁等處理下,數字水印不容易被破壞;
(3)安全性:加入水印和檢測水印的方法對沒有授權的第三方是保密的而且不可輕易被破解,即使被黑客檢測到了也不能讀出(數字水印需要加密)〔1〕。
因特網的出現以及計算機、掃描儀和打印機的廣泛使用使得數字化多媒體數據的獲取、交換和傳輸變得異常簡單。但是通過網絡傳播數據也使有惡意的個人或團體在沒有得到數據文件所有者許可的情況下能肆意地復制和傳播有版權保護的文檔。數字水印技術則為這種問題提供了一個潛在的解決方案。數字水印是往多媒體數據(如圖像、聲音、視頻信號等)中添加某些數字信息以達到版權保護等作用。如果沒有魯棒性(Robustness)的要求,水印與信息偽裝技術上的處理本質上是完全一致的。典型數字水印系統模型:
圖1.1 水印信號嵌入模型
圖1.2 水印信號檢測模型
圖1.1為水印信號嵌入模型,其功能是完成將水印信號加入原始數據中;圖1.2為水印信號檢測模型,用以判斷某一數據中是否含有指定的水印信號〔2〕。
數字水印主要用于:阻止非法復制(間接的)、確定所有權(作者、發行人、分發商、合法的最終用戶)、確定作品的真實性和完整性(是否偽造、被篡改)、證實收件人、不可否認的傳送、法庭證據的驗證、贗品甄別、識別文件來源與版本、Web網絡巡邏監視盜賊、廣播監控〔1-2〕 。
1.1.2 使用半脆弱數字水印的必要性
數字水印是往多媒體數據(如圖像、聲音、視頻信號等)中添加某些數字信息以達到版權保護等作用。如果沒有魯棒性的要求,水印與信息偽裝技術上的處理本質上是完全一致的。在絕大多數情況下我們希望添加的信息是不可察覺的,并且希望攻擊者在不破壞數據本身質量的情況下無法將水印去掉。發展數字水印技術的原動力就是為了提供多媒體數據的版權保護。按水印的特性可以將數字水印分為魯棒數字水印和脆弱數字水印兩類。魯棒數字水印主要用于在數字作品中標識著作權信息,如作者、作品序號等,它要求嵌入的水印能夠經受各種常用的編輯處理;脆弱數字水印主要用于完整性保護,與魯棒水印的要求相反,脆弱水印必須對信號的改動很敏感,人們根據脆弱水印的狀態就可以判斷數據是否被篡改過。
圖像認證的目的是確認作品沒有受到惡意篡改,可用脆弱水印來實現認證。為了便于操作,脆弱水印對某些變換具有較低的魯棒性,而對另外一些則更低。脆弱水印對圖像的改變極為敏感,即使最微小的改變也會導致檢測到改變。比如說,對一副圖像進行很小的質量的JPEG(Joint Photographic Experts Group,聯合圖像專家組)壓縮(1%),加入了脆弱水印的圖像在檢測時,給出的結論就是圖像被篡改,即圖像已不是原來的或者說可以接受的圖像了。但是實際上,就HVS(Human Visual System,人類視覺系統)來說,1%的JPEG是完全可以接受的。這就是說,對于現在廣泛使用的數字圖像來說,少量的不在關鍵位上的改變是完全可以接受的,在視覺或者聽覺上即HVS上是不會有很大的感覺的。此時,基于脆弱水印的精確認證就無法實現認證功能。
1.1.3使用半脆弱數字水印的優點
近年來,國內外有關認證水印的研究日益增加,根據識別能力的不同,又分為脆弱水印和半脆弱水印。脆弱水印不是本文要討論的重點。由于實際應用上的不確定性,導致了簡單的數字水印不能勝任,人們提出了半脆弱水印。比如說了法庭上的證據,圖像的或音頻的,簡單的水印加入了,敵手可能破解水印,并加入有利于敵手的篡改水印,這樣原始的水印就無法發揮作用。用了半脆弱水印的話,任何敵手的惡意篡改都可能被檢測到,并由于算法的不同,而采取水印毀滅或是諸如水印以篡改的信息。這樣,這種證據就不能被敵手應用了。另外,由于水印是半脆弱的,在非惡意攻擊下,比如JPEG壓縮后,檢測系統給出的結論仍然會是通過認證。這就是因為半脆弱水印對善意攻擊的魯棒性而體現的優勢。總的來說,即對惡意篡改的脆弱性和對善意改變的魯棒性。
1.1.4 課題目標
研究的過程就是學習數字水印的相關知識的過程,并在一定的理解的前提下能提出自己的想法,并在仿真平臺上實現。具體來說,就是了解數字水印的概念,發展,理解半脆弱數字水印的提出和意義,實現方法,現有算法,實現一個自己的能用于圖像認證的半脆弱水印算法。具體針對本算法,要實現的四個部分如下:
(1) 水印預處理(Preprocessing) 嵌入水印前將要嵌入的水印進行某種處理,以達到加密的目的。本算法是使用海明碼處理水印后再用高斯序列處理,才成為要嵌入的水印。
(2) 水印嵌入(Embedding) 采用分塊植入方法,原圖像分成8塊,由圖像的能量和方差決定分塊,再給每塊賦基準域值噪聲。
(3) 水印檢測(Detection) 從植入水印后的圖像中提取水印信息,并把圖像和原圖像,水印和原水印進行比較。
(4) 攻擊檢測(Attack detecting) 對遭受攻擊的圖像進行水印提取和分析,從而判斷圖像是否遭受惡意篡改。
1.2半脆弱數字水印的研究現狀
利用半脆弱性水印進行圖像內容認證在保證數字媒體信息一定視(或聽)覺質量的前提下,將與媒體內容相關或不相關的標志信息作為水印直接嵌入媒體內容中,當媒體內容需要認證時,可將水印提出鑒定其是否真實完整。由于半脆弱性水印本身在對篡改具有一定的敏感性和脆弱性的同時,仍然具備數字水印的一般特征,如不可見、安全性和對某些圖像信號處理的穩健性,因此在圖像內容認證中獲得了廣泛的使用。目前,半脆弱水印已應用于新聞圖片、電子商務、法律案件、醫學圖像、工程設計等領域。
近年來,國內外有關認證水印的研究日益增加,根據識別能力的不同,又分為脆弱水印和半脆弱水印。脆弱水印不是本文要討論的重點。早期的脆弱水印技術大多采用對圖像重要性校驗和將水印嵌入到LSB (Least Significant Bit,最低有效位)平面上的方法對媒體內容的完整性進行認證。改進后的脆弱水印算法有了新的特性,不僅可實現對篡改位置的定位,有的甚至可用于篡改部位的復原。但總的來說這些脆弱水印的魯棒性較低,無論對惡意篡改還是對正常的圖像處理都非常敏感,而事實上大多數圖像內容認證的應用并不需要如此精確,因此完全脆弱性水印在實際應用中實用性不高。
為了提高脆弱性水印在實際應用中的實用性,同時具有脆弱水印和魯棒性水印兩種功能的半脆弱水印應運而生。半脆弱水印在容忍一定程度的常見信號處理操作的同時,還可把正常的信號處理與惡意篡改區別對待。篡改發生時,半脆弱水印認證系統不僅可提供篡改的破壞量位置,而且可幫助分析篡改類型。另外,基于半脆弱水印的自嵌入水印還可恢復被篡改的部分。半脆弱水印作為一項新型數字媒體認證技術,近年來得到長足發展,并且逐步從靜止圖像擴展到視頻等領域。視頻水印從實現算法上來說同靜止圖像水印并無太大差別,但對半脆弱水印算法的實時性要求是必要的,而且應能處理連續幀序列。由于實際應用上的不確定性,導致了簡單的數字水印不能勝任,人們提出了半脆弱水印。比如說了法庭上的證據,圖像的或音頻的,簡單的水印加入了,敵手可能破解水印,并加入有利于敵手的篡改水印,這樣原始的水印就無法發揮作用。用了半脆弱水印的話,任何敵手的惡意篡改都可能被檢測到,并由于算法的不同,而采取水印毀滅或是諸如水印以篡改的信息。這樣,這種證據就不能被敵手應用了。另外,由于水印是半脆弱的,在非惡意攻擊下,比如JPEG壓縮后,檢測系統給出的結論仍然會是通過認證。這就是因為半脆弱水印對善意攻擊的魯棒性而體現的優勢。總的來說,即對惡意篡改的脆弱性和對善意攻擊的魯棒性。
脆弱水印因為在內容認證方面的重要性而受到日益廣泛的關注。在惡意篡改和偶然攻擊之間必須要有一個確定,所以半脆弱水印要對內容保護的操作要有一定的魯棒性。一個半脆弱水印要具備以下三個要求:對惡意篡改的高度敏感性和對內容保護操作的魯棒性、不可見性、安全性。半脆弱水印不但要對惡意的攻擊特別敏感,還要對一些常規的圖像操作具有一定的魯棒性,據此區分偶然攻擊和惡意篡改。因為JPEG壓縮的普遍性,抗JPEG壓縮一直是半脆弱水印研究的重點和難點[3-5]。國際上已有這方面的諸多論文問世。
1.3 論文的組織
論文全文共分五章:
第一章 緒論。這一章主要介紹本課題的研究意義、現狀和目標。
第二章 相關技術和設計環境概述。這一章主要介紹了數字水印的基本概念和半脆弱數字水印的基本概念,并介紹了實現認證的半脆弱水印的5種流行的方法。對于各種方法的優劣評判,接下來介紹了評價算法的幾個指標。最后,介紹了實現仿真的平臺,Matlab6.5。
第三章 圖像認證半脆弱水印算法原理與總體設計。針對圖像認證這一目標,我們的半脆弱水印有它自己的要求和特點。根據這些要求我們設計了算法,這一章給出了算法的框架,并對算法進行了模塊劃分,最后給出了程序框圖。
第四章 圖像認證半脆弱水印算法的詳細設計與實現。這一章詳細介紹了水印算法的各個步驟的實現,最后對實驗結果進行分析,并評價了本算法。
第五章 總結與展望。這一章主要是對本次畢業設計論文工作的總結,以及對數字水印技術發展的想法。
第二章 相關技術與設計環境概述
數字水印技術的基本思想源于古代的偽裝術(密寫術)。古希臘的斯巴達人曾將軍事情報刻在普通的木板上,用石蠟填平,收信的一方只要用火烤熱木板,融化石蠟后就可以看到密信。使用最廣泛的密寫方法恐怕要算化學密寫了,牛奶、白礬、果汁等都曾充當過密寫藥水的角色。大約700年前,在手工造紙技術中出現了紙張上的水印。
可以說,人類早期使用的保密通信手段大多數屬于密寫而不是密碼。但與密碼技術相比,密寫術始終沒有發展成為一門獨立的學科,其中的主要原因是密寫術缺乏必要的理論基礎。
然而今天的數字化技術的發展為古老的密寫術注入了新的活力,在研究數字水印的過程中,研究者大量借鑒了信息偽裝的思想。尤其是近年來信息隱藏技術理論框架研究的興起,更給密寫術成為一門嚴謹的科學帶來了希望。
2.1 數字水印的概念
2.1.1 數字水印的基本概念
在數字水印技術中,水印的數據量和魯棒性構成了一對基本矛盾。理想的水印算法應該既能隱藏大量數據,又可以抗各種信道噪聲和信號變形。然而在實際這兩個指標往往不能同時實現,但是實際應用一般只偏重其中的一個方面。如果是為了隱蔽通信,數據量顯然是最重要的,由于通信方式極為隱蔽,遭遇敵方篡改攻擊的可能性很小,因而對魯棒性要求不高。但對保證數據安全來說,情況恰恰相反,各種保密的數據隨時面臨著被盜取和篡改的危險,所以魯棒性是十分重要的,此時,隱藏數據量的要求居于次要地位。
一般數字水印的通用模型包括嵌入和檢測、提取兩個階段。數字水印的生成階段,嵌入算法的嵌入方案的目標是使數字水印在不可見性和魯棒性之間找到一個較好的折中。檢測階段主要是設計一個相應于嵌入過程的檢測算法。檢測的結果或是原水印(如字符串或圖標等),或是基于統計原理的檢驗結果以判斷水印存在與否。檢測方案的目標是使錯判與漏判的概率盡量小。為了給攻擊者增加去除水印的不可預測的難度,目前大多水印制作方案都在加入、提取時采用了密鑰,只有掌握密鑰的人才能讀出水印。
數字水印技術從不同的角度有下面的一些劃分方法。
1. 按特性劃分
按水印的特性可以將數字水印分為魯棒數字水印和脆弱數字水印。魯棒數字水印主要用于在數字作品中標識著作權信息,它要求嵌入的水印能夠經受各種常用的編輯處理;脆弱數字水印主要用于完整性保護,脆弱水印必須對信號的改動很敏感,人們根據脆弱水印的狀態就可以判斷數據是否被篡改過。
2. 按水印所附載的媒體劃分
按水印所附載的媒體,數字水印分為圖像水印、音頻水印、視頻水印、文本水印以及用于三維網格模型的網格水印等。
3. 按檢測過程劃分
按水印的檢測過程將數字水印分為明文水印和盲水印。明文水印在檢測過程中需要原始數據,而盲水印的檢測只需要密鑰,不需要原始數據。一般明文水印的魯棒性比較強,但其應用受到存儲成本的限制。目前數字水印大多數是盲水印。
4. 按內容劃分
按數字水印的內容可以將水印劃分為有意義水印和無意義水印。有意義水印是指水印本身也是某個數字圖像(如商標)或數字音頻片段的編碼;無意義水印則只對應于一個序列號。有意義水印如由于受到攻擊或其他原因致使解碼后的水印破損,人們仍然可以通過視覺觀察確認是否有水印。但對于無意義水印來說,如果解碼后的水印序列有若干碼元錯誤,則只能通過統計決策來確定信號中是否含有水印。
5. 按水印隱藏的位置劃分
按數字水印的隱藏位置劃分為時域數字水印、頻域數字水印、時/頻域數字水印和時間/尺度域數字水印。時域數字水印是直接在信號空間上疊加水印信息,而頻域數字水印、時/頻域數字水印和時間/尺度域數字水印則分別是在DCT變換域、時/頻變換域和小波變換域上隱藏水印。隨著數字水印技術的發展,各種水印算法層出不窮,水印的隱藏位置也不再局限于上述四種。實際上只要構成一種信號變換,就有可能在其變換空間上隱藏水印。
6. 按用途劃分
不同的應用需求造就了不同的水印技術。而這又可分為6種不同的水印技術。
(1)數字作品的知識產權保護
版權標識水印是目前研究最多的一類數字水印由于數字作品的拷貝、修改非常容易,而且可以做到與原作完全相同,所以原創者不得不采用一些嚴重損害作品質量的辦法來加上版權標志,而這種明顯可見的標志很容易被篡改。數字作品的所有者可用密鑰產生一個水印,并將其嵌入原始數據,然后公開發布其水印版本作品。當該作品被盜版或出現版權糾紛時,所有者即可從盜版作品或水印版作品中獲取水印信號作為依據,從而保護所有者的權益。
目前用于版權保護的數字水印技術已經進入了初步實用化階,IBM(International Business Machines Corporation,國際商用機器公司)公司在其”數字圖書館”軟件中就提供了數字水印功能,Adobe公司也在其著名的Photoshop軟件中集成了Digimarc公司的數字水印插件。
(2)商務交易中的票據防偽
隨著高質量圖像輸入輸出設備的發展,特別是高精度彩色噴墨、激光打印機和高精度彩色復印機的出現,使得貨幣、支票以及其他票據的偽造變得更加容易。
據報道,美國、日本以及荷蘭都已開始研究用于票據防偽的數字水印技術。麻省理工學院媒體實驗室受美國財政部委托,已經開始研究在彩色打印機、復印機輸出的每幅圖像中加入唯一的、不可見的數字水印,在需要時可以實時地從掃描票據中判斷水印的有無,快速辨識真偽。
此外在電子商務中會出現大量過度性的電子文件,如各種紙質票據的掃描圖像等。即使在網絡安全技術成熟以后,各種電子票據也還需要一些非密碼的認證方式。數字水印技術可以為各種票據提供不可見的認證標志,從而大大增加了偽造的難度。
(3)標題與注釋
即將作品的標題、注釋等內容(如照片的拍攝時間和地點等)以水印形式嵌入到作品中,這種隱式注釋不需要額外的帶寬,且不易丟失.
(4)篡改提示
由于現有的信號拼接和鑲嵌技術可以做到移花接木而不為人知,基于數字水印的篡改提示是解決這一問題的理想技術途徑,通過隱藏水印的狀態可以判斷聲像信號是否被篡改。為實現該目的,通常可將原始圖象分成多個獨立塊,再將每個塊加入不同的水印。
同時可通過檢測每個數據塊中的水印信號,來確定作品的完整性。與其他水印不同的是,這類水印必須是脆弱的,并且檢測水印信號時,不需要原始數據。
(5)使用控制
這種應用的一個典型的例子是DVD(Digital Video Disk, 數字化視頻光盤)防拷貝系統,即將水印信息加入DVD數據中,這樣DVD播放機即可通過檢測DVD數據中的水印信息而判斷其合法性和可拷貝性。從而保護制造商的商業利益。
(6)隱蔽通信及其對抗
數字水印所依賴的信息隱藏技術不僅提供了非密碼的安全途徑,可以實現網絡情報戰的革命。網絡情報戰是信息戰的重要組成部分,其核心內容是利用公用網絡進行保密數據傳送。由于經過加密的文件往往是混亂無序的,容易引起攻擊者的注意。網絡多媒體技術的廣泛應用使得利用公用網絡進行保密通信有了新的思路,利用數字化聲像信號相對于人的視覺、聽覺冗余,可以進行各種信息隱藏,從而實現隱蔽通信〔4〕。
2.1.2 半脆弱數字水印的基本概念
按照水印特性,即水印抵抗攻擊噪聲能力可分為魯棒水印和脆弱水印,而半脆弱水印是介于兩者之間的水印技術。
魯棒水印是指經受攻擊后仍然能夠提取出的水印,它能夠抵制任何企圖破壞或去除水印的操作,任何企圖移動和破壞水印的操作都將導致媒體質量的嚴重損害。這個特性使得它主要用在版權保護和內容跟蹤上。透明性(不可見性)和魯棒性是其最重要的兩個特征。
為了取得理想的魯棒性,提出了許多水印技術。如利用擴頻的方法,將水印作為一個窄帶的信號通過寬帶的信道(載體圖像)進行傳輸,各種有意無意的干擾被視作噪聲。還有基于圖像特征的自適應水印方案,動態地改變水印嵌入參數來降低嵌入過程帶來的干擾,增強水印的魯棒性。脆弱水印極容易破壞,一般用于圖像的認證。任何對嵌入水印圖像的操作都會破壞嵌入其中的水印,許多的水印技術還能定位出被篡改部分的位置。但是,脆弱水印對圖像某些正常的操作魯棒性太差,比如正常的JPEG壓縮及圖像的增強。實際應用中我們希望嵌入的水印對這些正常的操作具有一定的魯棒性同時又能夠檢測到對圖像惡意修改(比如添加、移動、扭曲圖像中的物體)。由此,就產生了所謂的半脆弱水印。
半脆弱水印融合了魯棒水印和脆弱水印的特性,主要用在圖像的內容認證上,這就需要它必須具備兩個基本特性:(1)透明性:即嵌入水印的過程是不可察覺的,嵌入水印后的圖像質量不能引起質的變化。這是大多數水印嵌入方案所要求的。(2)盲檢測:即在認證的時候不需要原始圖像。
2.1.3 半脆弱數字水印的實現方法
一個典型的數字水印系統,包括水印的生成、水印的嵌入及水印提取的三個部分,半脆弱水印和魯棒水印的嵌入過程基本相同,但是在水印提取(即圖像認證)的過程中與魯棒水印不同。下面我們以圖像的半脆弱水印為例說明水印的嵌入和檢測過程:
(1)水印的嵌入過程
水印的嵌入算法為 (),水印為W,原始圖像為I,嵌入水印后的圖像為 。設 。 為從圖像中抽取出要嵌入水印的屬性序列, 。 為相應的水印序列,水印是有特殊意義的信息,如文字、序列號、公司標志、聲音等。則一般的嵌入規則為:
(加法規則) (2.1)
(乘法規則) (2.2)
利用 代替載體圖像中的V,即得到嵌入水印的圖像 。抽取的屬性序列V即可以是采樣強度/幅度(空域/時域)或者是變換系數大小(變換域),由此對應空域和頻域的水印算法。參數 隨著采樣的不同而不同。水印嵌入強度應該保證水印是不可見的,即嵌入的水印應該不影響載體圖像的原內容和價值。算法的框架如下:
圖2.1 一般水印的嵌入框圖
(2)水印的檢測過程
水印的提取算法為 ,對于一個待測試的圖像 ,利用提取算法提取出水印 ,其中K為提取密鑰。利用W和 的差別(需要預先設置一個閾值)或者利用一個相似函數,我們就可以對圖像的真實性進行認證。脆弱水印算法的目的在于真實性認證,因此在認證的過程,或者說在水印的提取過程中不需要原始圖像;而魯棒水印的目的是版權保護,因此某些魯棒水印算法在水印提取的過程中可能需要原始圖像。一般水印檢測和認證框圖如圖2.2。
2.2 算法性能指標簡介
圖2.2 一般水印檢測和認證框圖
水印的不可感知性和穩健性之間有一個權衡。對水印的不可感知性進行評估可以通過主觀測試或者通過質量度量來衡量。現在,在圖像和視頻的編碼壓縮領域最流行的失真度量標準是SNR(Signal to Noise Ratio,信噪比),以及PSNR (Peak Signal to Noise Ratio,峰值信噪比)。它們通常以dB(decibel,分貝)來度量。
(2.3)
(2.4)
其中 和 ,分別表示原始圖像和嵌入水印后的圖像中點的灰度值。X, Y分別是圖像行和列的個數。由2.4式中可以看出較高的峰值信噪比對應較高的圖像相似程度,也就是表示嵌入水印后的圖像有較高的不可感知性。還有用MSE(Mean Squared Error,均方誤差)來度量圖像的客觀保真度的,與PSNR相反,MSE越小表示圖像的近似程度越高,即:
(2.5)
在確定了失真度量后,下一個要解決的問題就是如何評估穩健性。根據嵌入水印的類型:一種是由某一密鑰產生的隨機序列;另一種是特定的信息或圖像。水印檢測的方法也相應有兩種:對于隨機序列的判定,一般利用假設檢驗的原理計算相似性,即:
(2.6)
當 時水印存在,否則判定水印不存在[8]。
當然,一個可能成為標準的數字水印系統必須能夠抵御各式各樣的攻擊,上述的評測標準只是其中的幾個方面,如信噪比和峰值信噪比這兩種度量方法在大多數情況下可以較為準確的反映出圖像的視覺質量,但由于它們沒有與人類的視覺系統和感知性相結合,所以在進行評估時又可能導致錯誤的結論。可見數字水印的跨學科性質決定了其進展與相關學科的發展密切相關。
2.3 仿真介紹
Matlab是Mathworks公司開發的一種集計算、圖形可視化和編輯功能于一體的功能強大、操作簡便、易于擴充的語言,是目前國際上公認的優秀的數學應用軟件之一。
? 在70年代中期,Cleve Moler博士和其同事在美國國家科學基金的資助下開發了調用EISPACK和LINPACK的FORTRAN子程序庫。EISPACK是特征值求解的FOETRAN程序庫,LINPACK是解線性方程的程序庫。在當時,這兩個程序庫代表矩陣運算的最高水平。
到70年代后期,身為美國New Mexico大學計算機系系主任的Cleve Moler,在給學生講授線性代數課程時,想教學生使用EISPACK和LINPACK程序庫,但他發現學生用FORTRAN編寫接口程序很費時間,于是他開始自己動手,利用業余時間為學生編寫EISPACK和LINPACK的接口程序。Cleve Moler給這個接口程序取名為Matlab,該名為矩陣(matrix)和實驗室(labotatory)兩個英文單詞的前三個字母的組合。在以后的數年里,Matlab在多所大學里作為教學輔助軟件使用,并作為面向大眾的免費軟件廣為流傳。
1983年春天,Cleve Moler到Standford大學講學,Matlab深深地吸引了工程師John Little。John Little敏銳地覺察到Matlab在工程領域的廣闊前景。同年,他和Cleve Moler,Steve Bangert一起,用C語言開發了第二代專業版。這一代的Matlab語言同時具備了數值計算和數據圖示化的功能。
1984年,Cleve Moler和John Little成立了Math Works公司,正式把Matlab推向市場,并繼續進行Matlab的研究和開發。
在當今30多個數學類科技應用軟件中,就軟件數學處理的原始內核而言,可分為兩大類。一類是數值計算型軟件,如Matlab,Xmath,Gauss等,這類軟件長于數值計算,對處理大批數據效率高;另一類是數學分析型軟件,Mathematica,Maple等,這類軟件以符號計算見長,能給出解析解和任意精確解,其缺點是處理大量數據時效率較低。MathWorks公司順應多功能需求之潮流,在其卓越數值計算和圖示能力的基礎上,又率先在專業水平上開拓了其符號計算,文字處理,可視化建模和實時控制能力,開發了適合多學科,多部門要求的新一代科技應用軟件Matlab。經過多年的國際競爭,Matlab以經占據了數值軟件市場的主導地位。
在Matlab進入市場前,國際上的許多軟件包都是直接以FORTRANC語言等編程語言開發的。這種軟件的缺點是使用面窄,接口簡陋,程序結構不開放以及沒有標準的基庫,很難適應各學科的最新發展,因而很難推廣。Matlab的出現,為各國科學家開發學科軟件提供了新的基礎。在Matlab問世不久的80年代中期,原先控制領域里的一些軟件包紛紛被淘汰或在Matlab上重建。
MathWorks公司1993年推出了Matlab 4.0版,1995年推出4.2C版(for win3.X)1997年推出5.0版。1999年推出5.3版。Matlab5.X較Matlab 4.X無論是界面還是內容都有長足的進展,其幫助信息采用超文本格式和PDF格式,在Netscape 3.0或IE 4.0及以上版本,Acrobat Reader中可以方便地瀏覽。
時至今日,經過MathWorks公司的不斷完善,Matlab已經發展成為適合多學科,多種工作平臺的功能強大大大型軟件。在國外,Matlab已經經受了多年考驗。在歐美等高校,Matlab已經成為線性代數,自動控制理論,數理統計,數字信號處理,時間序列分析,動態系統仿真等高級課程的基本教學工具;成為攻讀學位的大學生,碩士生,博士生必須掌握的基本技能。在設計研究單位和工業部門,Matlab被廣泛用于科學研究和解決各種具體問題。在國內,特別是工程界,Matlab一定會盛行起來。可以說,無論你從事工程方面的哪個學科,都能在Matlab里找到合適的功能〔7〕。
第三章 圖像認證半脆弱水印算法原理與總體設計
半脆弱水印技術既可以在一定程度上容忍施加于含水印數字媒體上的常見信號處理操作(如疊加噪聲、平滑濾波、有損壓縮等),又能夠對惡意篡改做出報警反應且具有定位篡改區域的能力,故在網絡時代具有更重要的應用價值。近幾年,半脆弱圖像數字水印技術研究取得了很大進展,陸續提出了諸如與JPEG編解碼器相結合、基于視覺掩蔽特性、基于量化系數等多種水印嵌入算法。這些半脆弱型水印算法普遍具有篡改檢測較出色、虛警率較低的優點,但也不同程度存在透明性較差、對某些常規信號處理不夠魯棒、篡改區域定位不夠準確等不足。
3.1 用于圖像認證算法的特殊要求分析
圖像認證的目的是確認作品沒有受到任何改變,可用脆弱水印來實現圖像認證。為了便于檢測,脆弱水印對某些變換(如壓縮),具有較低的健壯性,面對其他變換的健壯性更低。脆弱水印對圖像的改變極其敏感,適于圖像的精確認證,但對數字圖像來說,少量比特的改變不會造成原作品實質上的不同,事實上有的失真(如有損壓縮等)會修改作品中很多的比特,但在視覺上不會造成改變。在許多應用中,兩幅圖像在視覺上相似就意昧著其壓縮版本是可接受的。此時,基于脆弱水印的精確認證無法實現圖像認證,這促使研究人員提出能夠進行選擇認證的半脆弱水印。目前大多數圖像數字水印研究都集中在版權保護水印上,而對圖像認證水印的研究相較少,針對這種情況,論文中提出了一種能經受JPEG壓縮的半脆弱水印算法。該方法將兩個水印位嵌入到圖像每個8*8塊的高頻DCT(Discrete Cosine Transform,離散余弦變換)系數中,水印信號和嵌入的位置由DCT系數樣本和密鑰決定。這種水印可以從嚴重的JPEG壓縮中保存下來,但對低通濾波和噪聲等極為敏感,可用于圖像的選擇認證〔8〕。
3.2 實現認證功能的總體設計
所謂認證水印就是在保證數字媒體信息一定視(或聽)覺質量的前提下,將與媒體內容相關或不相關的標志信息作為水印直接嵌入媒體內容中,當媒體內容需要認證時,可將水印提出鑒定其是否真實完整。認證水印除了具有數字水印的一般特征,如不可見、穩健性、安全性外,水印本身對篡改必須具有一定的敏感性和脆弱性。因此,同樣在數字媒體中嵌入信息,認證水印與魯棒水印的不同之處在于當信息內容發生改變時,認證水印信息會發生一定程度的改變。要實現對于圖像的認證功能,在水印嵌入和檢測上就有一些要求了。本身嵌入的水印就不能對要保護的圖像在感官上有太大的改變,這就要求嵌入的水印要在較低的有效位上,嵌入的水印不能是顯式的。提取出水印后,我們要把水印和嵌入的水印進行比較,以確定水印是否被篡改,最終才能認證圖像。
3.2.1模塊劃分
本算法共分為四個部分,水印預處理,水印嵌入,水印檢測,攻擊檢測。
圖3.1 算法模塊劃分圖
3.2.2算法框架圖
認證水印系統的一般框架如圖3.2,系統主體包括三部分,水印的產生,嵌入和檢測認證。
認證水印系統首先將提取的宿主圖像信息(特征或圖像內容)或自定義信息(圖像標志或序列號)轉變為水印信號,通過嵌入算法將其嵌入原始圖像中,得到的含水印的圖像經過信道在信宿端被接收.通過檢測認證算法進行認證,得到檢測結果。檢測認證時,要求僅僅借助待測圖像,或者再加上水印信息,即可得認證結果。在實際應用中,在嵌入和檢測的過程中,還需加入密鑰。
圖3.2 認證水印系統的一般框架圖
圖3.3給出一典型認證水印實現的例子。可以看出,圖3.3(a)(b)無明顯視覺差異。圖3.3(d)能較好的定位篡改部位。
(a)原始圖像 (b)嵌入水印后的圖像 (c)篡改圖像 (d)檢測結果
圖 3.3 認證水印的實現例子
而本論文的設計思想就是要實現對于圖像的認證。由于其特有的性質,我的算法也有一定的特性。首先產生的水印信息是高斯偽隨機碼,這是因為我考慮到,在具體的一副圖像中,不同的主體植入的水印信息是不同的,而我現在植入隨機序列作為信息,就具有一定的普遍性了。還有,我做的是不可見水印,也就無所謂植入的信息是否有直觀意義了。之后是對水印信息進行海明編碼,其作用是為了防止在傳輸過程中的客觀出錯。對信息進行置亂則是加密的需要了。做完了這些準備工作后即可以植入水印信息了。我的算法采用分塊DCT植入的方法,即把圖像分成8*8的小塊,每個都植入水印信息。最后就是對圖像進行攻擊測試了。我一共選用了10種常見的攻擊,一一做實驗,驗證我算法的性能。
下面就給出這個算法的框架圖。
圖3.4 本程序的框圖
第四章 圖像認證半脆弱水印算法的詳細設計與實現
在實際應用中,一個實用的數字媒體認證系統應大致滿足一些基本要求。如對篡改操作與否應具備極強的判斷能力;應對數字媒體內容被篡改的程度進行有效描述;在無法得知原始數字媒體內容或其它與真實信號內容相關的信息條件下,判斷可能發生的篡改操作的具體類別,例如信號處理中的濾波、壓縮、還是替換操作等。
4.1 算法思路
由于本算法是要實現對圖像的認證功能,故在算法上有一定的特點。由于具體水印信息的不確定性,本論文加入的水印信息是個隨機的噪聲碼,這樣在水印信息上就具有一定的普遍性了。算法首先是在擴頻域對水印信息進行預處理,采用的方法有海明編碼,直序擴展,以達到一定的加密和抗傳輸錯誤要求。嵌入算法是在DCT域分塊植入水印信息。檢測算法和嵌入算法是個相逆的過程。最后把提取的水印和原水印進行相關系數比較,從而判斷是否受到篡改攻擊。
4.2 各步驟詳細設計
模塊化程序設計就是把一個復雜的程序分成若干小部分,分部來進行設計,以達到簡化設計的目的。水印算法現在大都采用這種方法。論文的算法把程序分成如下三個部分:水印預處理、水印嵌入和水印檢測。
4.2.1水印預處理的實現
要想得到安全的水印,在嵌入目標水印前必須要對其進行一個預處理的過程。也就是加密的過程。本算法是用海明編碼和偽隨機碼進行置亂以隱藏加入的水印信息。如果傳輸的數據位是m位,加了r位冗余位,那么總共傳輸的數據單元是m+r位。 為了能夠發現這m+r位數據單元在傳輸到目的端后是否出錯,并能夠指明是在哪一位出錯,那么r至少應該能夠代表m+r+1種狀態。r比特能夠代表2r不同狀態。 因此,2r>=m+r+1 。若m=7,則滿足上式的最小r值為:4。下面以一個例子來說明海明碼的糾錯原理。
海明碼的接收端的公式:
S3= P3⊕ D4⊕D3 ⊕D2
S2= P2⊕D4 ⊕D3 ⊕D1 (4.1)
S1= P1⊕D4 ⊕D2 ⊕D1
假定海明碼1010101在傳送中由于偶然錯誤變成了1000101 ,
S3= P3⊕ D4⊕D3 ⊕D2=0⊕1⊕0 ⊕0 =1
S2= P2⊕D4 ⊕D3 ⊕D1=0⊕1⊕ 0 ⊕1=0
S1= P1⊕D4 ⊕D2 ⊕D1=1⊕1⊕ 0 ⊕1=1
因此,由S3S2S1= 101,指出第5位錯,應由0變1。這樣就可以糾錯了。
本文的算法要求先實現海明編碼,根據本論文加入的水印信息是34*4的偽隨機碼,所以實現海明編碼后得到的是36*7的編碼。
for i=1:36
s=8*x0(i,1)+4*x0(i,2)+2*x0(i,3)+x0(i,4);
switch s
case 0
x0(i,5)=0;x0(i,6)=0;x0(i,7)=0;
case 1
x0(i,5)=0;x0(i,6)=1;x0(i,7)=1;
case 2
x0(i,5)=1;x0(i,6)=1;x0(i,7)=0;
case 3
x0(i,5)=1;x0(i,6)=0;x0(i,7)=1;
case 4
x0(i,5)=1;x0(i,6)=1;x0(i,7)=1;
case 5
x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;
case 6
x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;
case 7
x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;
case 8
x0(i,5)=1;x0(i,6)=0;x0(i,7)=1;
case 9
x0(i,5)=1;x0(i,6)=1;x0(i,7)=0;
case 10
x0(i,5)=0;x0(i,6)=1;x0(i,7)=1;
case 11
x0(i,5)=0;x0(i,6)=0;x0(i,7)=0;
case 12
x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;
case 13
x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;
case 14
x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;
case 15
x0(i,5)=1;x0(i,6)=1;x0(i,7)=1;
end;
end;
由于本身我們嵌入的水印信息是高斯正態分布序列,本身就具有一定的無序性,再加上之后用偽碼進行了置亂,很好的達到了加密的目的。為了抵抗在傳輸過程中的偶然錯誤,偽碼用了海明碼糾錯。所以檢測的時候我用相關的糾錯解碼技術就可再現水印信息。
4.2.2水印嵌入的實現
由于JPEG壓縮的不變性,也就是說,如果一個DCT系數是經過某個預先選定的量化步長量化并取整得到的,只要后續的量化步長小于選定值,則這個DCT系數可以被精確重建,換句話說,如果某幅圖像預先經過某個選定的質量因子的JPEG有損壓縮,那么這幅圖像可以對任何大于該選定質量因子的后續JPEG壓縮保持不變,因為原始量化圖像所有DCT系數都可以精確重建,而如果后續JPEG壓縮的質量因子小于選定值,原始量化圖像的DCT系數則無法恢復。這個需要預先選定的質量因子一般可以設定為人眼最低可以接受的圖像質量因子,也就是說,任何低于該質量因子的圖像被視為不可接受的。JPEG標準推薦圖像的質量因子在50一75之間均為視覺上可以接受的,因此我們可以選擇50作為預先設定的質量因子,其對應的量化表為DCT系數的量化步長。
利用前面所述的JPEG壓縮的不變性,首先將原始圖像的8*8塊DCT系數塊按預定的質量因子對應的量化表進行量化,通過對量化后的DCT系數進行”微調”來嵌入水印信息比特,再進行DCT反變換得到水印圖像。相同的過程提取出水印,并將其與原始水印信息匹配的百分比和設定的閾值比較,決定是否通過認證。該算法能夠抵抗所有大于預定質量因子的攻擊。
算法中水印信息的選擇是基于圖像內容特征的。一種簡單的基于圖像內容的特征是每個分塊灰度值的均值的最重要位(MSB ,the Most Significant Bit),即最高位。水印的嵌人算法采用了一種無損數據隱藏方法環形直方圖算法(Circular His-togram Algorithm)。首先把待嵌人水印的圖像分成8*8塊,每塊64個像素通過密鑰被隨機地分為A和B兩組,在每一組中,灰度值直方圖映射為一個環形,環形的周長為256個單位,等分為Q個區間,每個區間分的弧長為256/O若一個像素灰度值落在某個區間之內,則這個區間的權重加1,這樣每一組共有犯個權重加載在環上。計算每組環上的加權平均值,從統計學的角度分析,由于A, B兩組的像素都是隨機選擇的,因而A, B兩組的加權平均值應非常接近或近似相等。為了在每一個8*8塊中嵌入1比特水印信息,將塊中像素的灰度值作如下修改:
若嵌人比特為”1 ” C`=C+P當像素在A組中;
C`=C-P當像素在B組中;
若嵌入比特為”0″ C`=C-P當像素在A組中;
C`=C+P當像素在B組中;
其中c為待嵌入水印圖像的像素灰度值,c為修改后,即嵌入水印后圖像的像素灰度值,P= 256/Q。若嵌入比特”1″,則A組中的所有像素灰度值增加P,對應到環上即像素灰度值均順時針方向偏轉了一個區間,每個像素在環上的位置均順時針轉了360/Q度。相應的B組中的所有像素均逆時針方向偏轉了相同的度數。這樣當嵌入比特”10的時候,A組的加權平均值大于B組,且每個圖像塊灰度值的均值,即選定的圖像特征保持不變。嵌入”0″比特的情況同理可得。通過這種環形直方圖無損數據隱藏算法將由圖像內容特征產生的水印信息嵌入了預壓縮后的圖像〔9〕。
4.2.3水印檢測的實現
將接收到的待驗證的圖像先按預定質量因子壓縮,恢復出預壓縮后的水印圖像;再依照環形直方圖算法提取水印:將圖像8*8分塊按選定的密鑰隨機分成A, B兩組,并映射到環上,計算A, B兩組對應環的加權平均值。如果A組的加權平均值大于B組,則提取出比特”1″,反之則提取出比特”0″。圖像認證過程將提取出的水印比特與對恢復出的預壓縮圖像再次計算得到的特征信息進行比較匹配,若匹配的百分比大于設定的域值則圖像通過認證,反之判斷為遭受過惡意篡改。由前面所說的JPEG壓縮的不變性可知,該算法可以抵抗任何高于預定質量因子的JPEG壓縮。并能根據認證過程中不匹配的比特定位遭受篡改的位置,精度為8*8塊。由于嵌人的水印信息是基于圖像內容特征的,每幅圖像嵌人的比特信息必定各不相同,因而可以有效地抵抗共謀攻擊〔10〕。
論文中用到的糾錯編碼現在就可以發揮它的優勢了。程序實現到此,論文用糾錯解碼的方法得到36*4的提取水印,把這個水印和之前植入的水印信息進行比較,就可以作出是否被篡改的判斷了。
for i=1:36
s1(i)=x1(i,1)+x1(i,2)+x1(i,3)+x1(i,5);
s2(i)=x1(i,2)+x1(i,3)+x1(i,4)+x1(i,6);
s3(i)=x1(i,1)+x1(i,2)+x1(i,4)+x1(i,7);
s1(i)=mod(s1(i),2);
s2(i)=mod(s2(i),2);
s3(i)=mod(s3(i),2);
if (s1(i)==0&s2(i)==0)&(s3(i)==1)
x1(i,7)=~x1(i,7);
elseif (s1(i)==0&s2(i)==1)&(s3(i)==0)
x1(i,6)=~x1(i,6);
elseif (s1(i)==0&s2(i)==1)&(s3(i)==1)
x1(i,4)=~x1(i,4);
elseif (s1(i)==1&s2(i)==0)&(s3(i)==0)
x1(i,5)=~x1(i,5);
elseif (s1(i)==1&s2(i)==0)&(s3(i)==1)
x1(i,1)=~x1(i,1);
elseif (s1(i)==0&s2(i)==1)&(s3(i)==0)
x1(i,3)=~x1(i,3);
elseif (s1(i)==1&s2(i)==1)&(s3(i)==1)
x1(i,2)=~x1(i,2);
end;
end;
4.3 實驗結果與分析
由算法寫的程序在Matlab6.5平臺上仿真,使用標準水印實驗圖像cameraman(256*256)(如圖4.1)作為認證圖像。由于Matlab的易用性,我只要用個簡單的函數imread()就能讀取cameraman圖像為我用了。
圖4.1 Cameraman
Matlab功能強大的函數功能使我生成高斯正態序列也變得簡單了。如下的程序能生成36*4的信息。
randn(’state’,1106);
g1=randn(36,4);
for i=1:36
for j=1:4
if g1(i,j)>=0
w0(i,j)=1;
else w0(i,j)=0;
end;
end;
end;
加入的高斯正態序列生成的圖片,也即要加入的水印圖像如圖4.2。
圖 4.2 水印圖像
這些屬于預處理的工作做好后,就可以實現嵌入了。嵌入水印是所有所有算法中最重要的部分,這部分寫的好壞能很大程度上影響算法的性能。應用本算法嵌入水印后的圖像為4.3圖。
圖 4.3 嵌入水印后的圖像
使用語句imwrite(f,’attackf.jpg’,'jpg’,'quality’,30)即實現了30%JPEG壓縮。攻擊后的圖像為圖4.4。
圖 4.4 30%jpeg壓縮后的圖像
我們知道,在評價一個算法好壞的時候有兩中標準,一種是主觀的一種是客觀的。首先在主觀上我們可以很直接的說,算法能抵抗壓縮因子為30%的JPEG壓縮。當我們把壓縮因子提高到20%時的圖像如圖4.5。
這樣在主觀上我們就能看出來壓縮因子在20時,算法就有一定的局限性了。對JPEG壓縮攻擊后的圖像進行水印提取后與嵌入的水印進行相關系數運算結果是r11=corr2(w0,w11)=1;snr11=31.2909。對余下的九種攻擊,我們也給出圖像,并求其相關系數和信噪比。由于算法加入了糾錯編碼,使得水印在遭受惡意篡改后所求出的相關系數是0,而在遭受了善意攻擊后的相關系數則是1。
所以得出結論如下:本算法能有效抵抗高斯低通濾波,直方圖均衡化,圖像增亮和變暗,對增加對比度,降低對比度,添加高斯噪聲增黑白像素點,添加乘積性噪聲則性能下降。也就是說本算法能很好的實現對圖像的認證功能。但算法對篡改的定位不是很有效,只能在主觀上判斷篡改部分。
圖 4.5 20%jpeg壓縮后的圖像
snr=30.3054 r=1
以下依次給出論文所做的其它攻擊后的圖像,如圖4.6-4.14。
圖4.6高斯低通濾波后的圖像 圖4.7 直方圖均衡化后的圖像
snr=31.067 r=1 snr=31.126 r=1
圖4.8 圖像增亮處理后的 圖4.9 圖像變暗處理后的
snr= 30.596 r=1 snr=30489 r=1
圖4.10 增加對比度后的圖像 圖4.11 降低對比度后的圖像
snr=30.158 r=0 snr=31.268 r=0
圖4.12 添加高斯噪聲后的圖像 圖4.13 增加黑白點像素后的圖像
snr=31.564 r=0 snr=31.357 r=0
圖4.14添加乘積性噪聲后圖像
snr=31.874 r=0
第五章 總結與展望
5.1 本文所做的工作總結
本論文主要是研究了一個用于圖像認證的水印算法,并對其有效性進行了評價。下面就在本論文寫作過程中作的工作進行一下總結:
一. 針對現在數字媒體應用的日益廣泛和盜版現狀的擔憂,提出了數字水印的概念。并進一步闡述了數字水印的必要性和重要性。然后對于特殊應用上,比如圖像認證方面的要求,引出了半脆弱水印的概念。之后論文還詳細介紹了脆弱水印的發展歷程和研究現狀。
二. 論文具體解釋了數字水印的定義和半脆弱水印的技術要求,并詳細介紹了國內外做半脆弱水印的方法,在此基礎上介紹了評價水印算法優劣的幾個指標。最后對本次畢業設計要用到的仿真平臺Matlab6.5進行了簡單的介紹。
三. 針對要實現對圖像進行認證這一目標,介紹了認證算法的一般要求,然后就提出了一個可用于圖像認證的半脆弱水印算法。介紹了算法的思路,并畫出了算法的方框圖。
四. 這部分詳細說明了算法各個部分的實現過程。包括水印的預處理的實現,水印嵌入的實現和水印檢測的實現。之后把仿真后的輸出結果直觀的貼在論文里,并給出了攻擊后圖像對于原圖像的信噪比和水印的相關系數。再加上我們的主觀評價,得出了對算法的評價。
5.2 工作展望
數字水印技術的理論基礎依然非常薄弱,大多數水印算法還是經驗性的。主要有以下幾個方面還需努力:
〔1〕 從現實的角度看,水印系統必然要在算法的魯棒性、水印的嵌入信息量以及不可覺察性之間達到一個平衡,這涉及魯棒性算法的原理性設計、水印的構造模型、水印能量和容量的理論估計、水印嵌入算法和檢測算法的理論研究等方面。如何確定平衡點仍是一個難題,目前大多數水印算法均利用經驗而不是從理論上解決此問題;
〔2〕如何將水印技術與現行國際圖像及視頻壓縮標準,如JPEG2000和MPEG-4(Moving Picture Experts Group-4,運動圖像專家組)相結合,以及如何將水印技術應用于DVD工業標準中;
〔3〕 所有權的證明問題還沒有完全解決,就目前已經出現的很多算法而言,攻擊者完全可以破壞掉圖像中的水印,或復制出一個理論上存在的”原始圖像”,這導致文件所有者不能令人信服地提供版權歸屬的有效證據。因此一個好的水印算法應該能夠提供完全沒有爭議的版權證明,在這方面還需要做很多工作。目前將水印作為版權保護的法律證據還不可能;
〔4〕聲頻和視頻水印的解決方案還不完善,大多數的視頻水印算法實際上是將其圖像水印的結果直接應用與視頻領域中,而沒有考慮視頻應用中大數據量以及近乎實時的特性。從今后的發展上看,水印在包括DVD等數字產品在內的視頻和音頻領域將有極為廣闊的應用前景。因此如何設計成熟的、合乎國際規范的水印算法仍然懸而未決;
〔5〕現有水印算法中在原理上有許多雷同之處,但目前國內外的工作尚未能對這些有內在聯系的不同算法中的共性問題進行高度提煉和深入的理論研究,因而缺乏對數字水印作進一步研究具有指導意義的理論結果。
從目前看大多數水印算法本質上都沒什么差別,且在嵌入過程中均是對PN(Pseudo Noise Sequence,偽隨機序列)序列進行調制并結合掩蔽特性,在檢測過程中使用基于相關法的假設檢驗。水印算法的設計不僅要考慮一般性的由標準數據處理過程導致的魯棒性問題,而且要考慮由于惡意攻擊而導致的魯棒性問題。前面已經提到了幾種普遍的攻擊類型,針對性的水印策略和方法也在研究中。一句話,水印應該有足夠的冗余設計以保證能夠抵抗各種攻擊行為。在版權保護方面,還需要考慮一些額外的方面。一個問題是如果有很多水印被嵌入到圖像中,如何證明那個最先被嵌入的。此問題的解決也許需要數字時間標識或水印等級等方法。而且現在已經可以看出,一個水印算法僅僅有足夠的魯棒性不足以保證解決有效版權問題,即使能夠得到原始數據。更進一步的講,水印算法應該是非對稱的、單向的、不可逆的。
雖然已經有商業化的水印系統,但對水印的研究還遠未成熟,許多問題如魯棒性、真偽鑒別、版權證明、網絡快速自動驗證等方面仍然還需要比較完美的解決方案〔11-14〕。
評論
查看更多