版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院信科專業(yè)綜合實(shí)踐設(shè)計(jì)報(bào)告專 業(yè): 電子信息科學(xué)與技術(shù) 班 級: 信科07-4班 設(shè)計(jì)題目: vc實(shí)現(xiàn)數(shù)字水印的加入與提取 成 員: 姚萬華 指導(dǎo)教師: 2010年 10月 14日課程設(shè)計(jì)指導(dǎo)教師評閱書指導(dǎo)教師評語:成 績: 指導(dǎo)教師簽字: 年 月 日【摘要】: 當(dāng)前,數(shù)字圖像技術(shù)的主要研究熱點(diǎn)之一是數(shù)字水印的應(yīng)用 。本文介紹了算法的思想 ,利用 vc技術(shù)對數(shù)字圖像水印lsb算法進(jìn)行實(shí)現(xiàn),并總結(jié)lsb算法的利弊 ,提 出了可行的改進(jìn)措施。關(guān)鍵詞:vc;圖像處理;數(shù)字水??;lsb算法 一、前言91.1背景91.2數(shù)字水印的現(xiàn)狀102.3數(shù)字水印的應(yīng)用12二、數(shù)字水印技術(shù)142.
2、1數(shù)字水印的起源、概念和基本原理142.2數(shù)字水印的嵌入和提取14三、數(shù)字水印的典型算法153.1最低有效位算法(lsb)163.2 patchwork 算法163.3紋理塊映射編碼163.4 其他16四、lsb算法的vc實(shí)現(xiàn)16五 、實(shí)驗(yàn)體會20參考書目:21附錄1:算法設(shè)計(jì)說明書21附錄二:主要原程序23一、前言 1.1背景隨著網(wǎng)絡(luò)通信的普及,許多傳統(tǒng)媒體內(nèi)容都向數(shù)字化轉(zhuǎn)變,并且在電子商務(wù)中即將占據(jù)巨大的市場份額,如mp3的網(wǎng)上銷售,數(shù)字影院的大力推行,網(wǎng)上圖片、電子書籍銷售等等。在無線領(lǐng)域,隨著移動網(wǎng)絡(luò)由第二代到第三代的演變,移動用戶將能方便快速的訪問因特網(wǎng)上數(shù)字媒體內(nèi)容,基于有線或無線
3、網(wǎng)絡(luò)的數(shù)字媒體內(nèi)容的影院即將是信息時(shí)代新的趨勢。但是,數(shù)字媒體內(nèi)容的安全問題恰恰制約著信息化進(jìn)程,雖然成熟的密碼學(xué)可以解決安全傳遞和訪問控制,但是一旦解密后,數(shù)字媒體內(nèi)容便可以隨意的被拷貝、傳播,它給媒體內(nèi)容制造商造成了巨大的損失;同時(shí),密文信息的傳遞也容易引起攻擊者的注意。因此如何安全的傳送信息就成了其中的關(guān)鍵,數(shù)字水印技術(shù)就成為開啟這一難點(diǎn)的鑰匙。數(shù)字水印(digital water marking)是實(shí)現(xiàn)版權(quán)保護(hù)的有效辦法,已成為多媒體信息安全研究領(lǐng)域的一個(gè)熱點(diǎn),也是信息隱藏技術(shù)研究領(lǐng)域的重要分支。它通過在原始數(shù)據(jù)中嵌入秘密信息水印(water mark)來證實(shí)該數(shù)據(jù)的所有權(quán)。被嵌入的水
4、印可以是一段文字、標(biāo)識、序列號等。水印通常是不可見的或不可察的,它與原始數(shù)據(jù)(如圖像、音頻、視頻數(shù)據(jù)等)緊密結(jié)合并隱藏其中,成為源數(shù)據(jù)不可分離的一部分,并可以經(jīng)歷一些不破壞源數(shù)據(jù)使用價(jià)值或商用價(jià)值的操作而存活下來。數(shù)字水印技術(shù)除具備信息隱藏技術(shù)的一般特點(diǎn)外,還有著其固有的特點(diǎn)和研究方法。例如,從信息安全的保密角度而言,隱藏的信息如果被破壞掉,系統(tǒng)可以視為安全的,因?yàn)槊孛苄畔⒉⑽葱孤?但是,在數(shù)字水印系統(tǒng)中,隱藏信息的丟失意味著版權(quán)信息的丟失,從而失去了版權(quán)保護(hù)的功能,這一系統(tǒng)就是失敗的。因此數(shù)字水印技術(shù)必須具有以下特性:安全性(嵌入在宿主數(shù)據(jù)中的水印是不可刪除的,且能夠提供完全的版權(quán)證據(jù))、魯
5、棒性(水印對有意或無意的圖像操作與失真具有一定的抵抗力)以及不可覺察性(水印對人的感覺器官應(yīng)是不可覺察的,或者說是透明的)。水印算法識別被嵌入到保護(hù)對象中的所有者的有關(guān)信息(如注冊的用戶號碼、產(chǎn)品標(biāo)志或有意義的文字等),并能在需要的時(shí)候?qū)⑵涮崛〕鰜?。水印可以用來判別對象是否受到保護(hù),并能夠監(jiān)視被保護(hù)數(shù)據(jù)的傳播、真?zhèn)舞b別以及非法拷貝控制等,這實(shí)際上是發(fā)展數(shù)字水印的基本動力。盡管版權(quán)保護(hù)是發(fā)展數(shù)字水印最重要的源動力,事實(shí)上人們還發(fā)現(xiàn)數(shù)字水印在真?zhèn)舞b別、隱藏通信、篡改提示、使用控制、標(biāo)題與注釋等領(lǐng)域都有重要應(yīng)用。數(shù)字水印術(shù)與古老的信息隱藏和數(shù)據(jù)加密技術(shù)關(guān)系非常密切,這些技術(shù)的發(fā)展以及融合為今后信息技
6、術(shù)的發(fā)展提供必不可少的安全手段。1.2數(shù)字水印的現(xiàn)狀自從第一篇在主要會議上發(fā)表的關(guān)于數(shù)字水印的文章,即vanschyndel在xexp94上發(fā)表的題為“adigitalwatermark”的文章以來,對數(shù)字水印的研究興趣在不斷的增長。這既可以從學(xué)術(shù)界也可以從工業(yè)界看出來。學(xué)術(shù)界的熱情反映在水印方面的文章還在大幅度增長,且有關(guān)數(shù)字水印和數(shù)據(jù)隱藏的會議也增長很快,幾個(gè)有影響的國際會議(如ieee icip、ieee icassp、acm multimedia等)以及一些國際權(quán)威雜志(如proceedings of ieee signal processing,ieee journal of sel
7、ected areas on communication,communications of acm等)相繼出版了數(shù)字水印的專輯。并且,國際上還成立了一些專門的研究機(jī)構(gòu),如拷貝保護(hù)技術(shù)工作組(cptwg,copy protection technique working group)從1995年開始致力于基于dvd的視頻版權(quán)保護(hù)研究,安全數(shù)字音樂創(chuàng)始(sdmi,secure digital music initiative)從1999年開始研究音頻的版權(quán)保護(hù),數(shù)字水印就是其中的核心關(guān)鍵技術(shù)。一項(xiàng)由德國人開發(fā)出來的數(shù)字水印技術(shù)已經(jīng)在比利時(shí)開始商業(yè)應(yīng)用,這項(xiàng)技術(shù)據(jù)稱可以防止在線音樂的非法復(fù)制。首個(gè)
8、應(yīng)用該技術(shù)的是比利時(shí)歌手soulbob的新專輯,該專輯將很快可以在網(wǎng)絡(luò)上下載。不過購買者的姓名以及住址等個(gè)人信息將加入到數(shù)字水印中。這樣非法復(fù)制的音樂將可以很快找到源頭。目前國際上的劍橋大學(xué)、ibm研究中心、nec美國研究所、麻省理工學(xué)院等都進(jìn)行了廣泛深入的研究;國際標(biāo)準(zhǔn)組織也對數(shù)字水印技術(shù)深感興趣。如歐洲的talisman的目標(biāo)是建立一個(gè)在歐洲范圍內(nèi)對大規(guī)模的商業(yè)侵權(quán)和盜版行為提供一個(gè)版權(quán)保護(hù)機(jī)制。taliman希望能夠?yàn)橐曨l產(chǎn)品以增加標(biāo)識和水印的方法提高保護(hù)手段。oceaus則是taliman和okapi的后續(xù)項(xiàng)目,其主要目的是將有條件的訪問機(jī)制和版權(quán)保護(hù)機(jī)制整合起來。即將發(fā)布的數(shù)字視頻壓
9、縮標(biāo)準(zhǔn)mpeg-4,提供一個(gè)框架允許結(jié)合簡單的加密方法和水印嵌入方法。dvd工業(yè)標(biāo)準(zhǔn)將利用水印技術(shù)提供復(fù)制控制和復(fù)制保護(hù)機(jī)制,如“復(fù)制一次”或“不允許復(fù)制”等等。我國學(xué)術(shù)界對數(shù)字水印技術(shù)的研究也方興未艾,已經(jīng)有相當(dāng)一批有實(shí)力的科研機(jī)構(gòu)投入到這一領(lǐng)域的研究中來,有的已經(jīng)取得了重要研究成果。為推動我國在數(shù)字水印這一國際前沿計(jì)算機(jī)技術(shù)的發(fā)展,促進(jìn)我國研究人員在此領(lǐng)域的交流與合作,國家863計(jì)劃智能計(jì)算機(jī)專家,會同中科院自動化所模式識別國家重點(diǎn)實(shí)驗(yàn)室和北京郵電大學(xué)信息安全中心,于2000年年初召開了國內(nèi)首次數(shù)字水印學(xué)術(shù)研討會。來自全國20多家重點(diǎn)高校和科研單位計(jì)算機(jī)、自動化、電子學(xué)科及數(shù)學(xué)學(xué)科的80多
10、名科研一線專家與青年工作者,參加了這次研討會。眾多的學(xué)術(shù)成果表明,我國科研工作者在數(shù)字水印方面的研究處于國際先進(jìn)水平。同時(shí),他們表示要盡快把研究成果轉(zhuǎn)化為生產(chǎn)力,解決與每個(gè)人切身利益密切相關(guān)的數(shù)字產(chǎn)品保護(hù)問題。但是,我國在該領(lǐng)域的研究尚不普及,隨著數(shù)字化產(chǎn)品在中國的廣泛開展,特別是今后幾年因特網(wǎng)用戶將成倍增長,電子商務(wù)會加速發(fā)展,在網(wǎng)絡(luò)上直接銷售數(shù)字化產(chǎn)品將給廠家?guī)順O大的商機(jī),也是中國產(chǎn)品走向世界的極佳途徑,其時(shí)如何有效保護(hù)產(chǎn)品的產(chǎn)權(quán)將成為廠商極為關(guān)心的問題。到目前為止,數(shù)字水印從研究對象上看主要涉及圖像水印、視頻水印、音頻水印、文本水印和三維網(wǎng)格數(shù)據(jù)水印等幾個(gè)方面,其中大部分的水印研究和論
11、文都集中在圖像研究上,其原因在于圖像是最基本的多媒體數(shù)據(jù),且互聯(lián)網(wǎng)的發(fā)展為圖像水印的應(yīng)用提供了直接大量的應(yīng)用需求。另外視頻水印也吸引了一些研究人員,由于視頻可以看成時(shí)一空域上的連續(xù)圖像序列,從某種意義上講,它與圖像水印的原理非常類似,許多圖像水印的研究結(jié)果可以直接應(yīng)用于視頻水印上。但兩者有一個(gè)重要的差別在于處理信號的數(shù)量級上,特別是視頻水印需要考慮實(shí)時(shí)性問題。2.3數(shù)字水印的應(yīng)用數(shù)字水印的應(yīng)用研究成為了國內(nèi)外公司和學(xué)術(shù)界的研究焦點(diǎn)。大部分的工作致力于尋求同時(shí)滿足保真度、魯棒性、嵌入容量和經(jīng)濟(jì)約束的平衡點(diǎn)。針對幾何和時(shí)間上失真的研究,也有穩(wěn)步進(jìn)展,出現(xiàn)了大量不同變換域的實(shí)驗(yàn)結(jié)果,如頻域變換有dc
12、t,fft,dwt和fourier-mellin等算法,還有大量的算法在mpeg和jpeg編碼中進(jìn)行,因?yàn)檫@樣可以節(jié)省昂貴的水印解碼負(fù)荷,有利于大批量的應(yīng)用,如dvd拷貝控制應(yīng)用等.目前數(shù)字水印的應(yīng)用主要集中在以下幾個(gè)方面:1) 版權(quán)保護(hù) 版權(quán)標(biāo)識水印是目前研究最多的一類數(shù)字水印。由于數(shù)字作品的拷貝、修改非常容易,而且可以做到與原作完全相同,所以原創(chuàng)者不得不采用一些嚴(yán)重?fù)p害作品質(zhì)量的辦法來加上版權(quán)標(biāo)志,而這種明顯可見的標(biāo)志很容易被篡改。數(shù)字作品的所有者可用密鑰產(chǎn)生一個(gè)水印,并將其嵌入原始數(shù)據(jù),然后公開發(fā)布其水印版本作品。當(dāng)該作品被盜版或出現(xiàn)版權(quán)糾紛時(shí),所有者即可從盜版作品或水印版作品中獲取水印
13、信號作為依據(jù),從而保護(hù)所有者的權(quán)益。2) 加指紋 如果嵌入到數(shù)字媒體中的數(shù)字水印用以標(biāo)一記媒體的使用者,當(dāng)出現(xiàn)侵權(quán)行為時(shí),通過檢測水印信息便可跟蹤盜版。此時(shí)數(shù)字水印稱之為數(shù)字指紋。它要求水印信息具有很高的高魯棒性、高容量。為避免未經(jīng)授權(quán)的拷貝制作和發(fā)行,出品人可以將不同用戶的id或序列號作為數(shù)字指紋嵌入作品的合法拷貝中。一旦發(fā)現(xiàn)未經(jīng)授權(quán)的拷貝,就可以根據(jù)此拷貝所恢復(fù)出的指紋來確定它的來源。美國ttr公司用discguard防盜版技術(shù)來保護(hù)軟件出版商的知識產(chǎn)權(quán)、防止軟件被盜版或非法復(fù)制。這種技術(shù)在cd一rom和dvd盤片上嵌入一個(gè)不可復(fù)制的“數(shù)字指紋,利用這個(gè)“數(shù)字指紋”可以鑒別出光盤是正版還是
14、盜版,從而控制軟件的運(yùn)行,即有“指紋”才能運(yùn)行,沒“指紋”不能運(yùn)行。這個(gè)“數(shù)字指紋”是在母版制作(mastering)過程中,通過在現(xiàn)有母版制作的激光系統(tǒng)上加入一個(gè)插件或者通過增強(qiáng)型光盤刻錄機(jī)實(shí)現(xiàn)的。用這個(gè)刻有“數(shù)字指紋”的母版復(fù)制出的每一張cd一rom都含有“數(shù)字指紋,這個(gè)“數(shù)字指紋,不能夠再被復(fù)制的。無論是利用光盤刻錄機(jī)或者用這張cd一rom再做母版,都不能復(fù)制“數(shù)字指紋”,也就是非法復(fù)制的cd一rom不含“數(shù)字指紋”,盜版的軟件不能運(yùn)行,從而保護(hù)了軟件開發(fā)者的知識產(chǎn)權(quán)。3) 標(biāo)題與注釋 即將作品的標(biāo)題、注釋等內(nèi)容(如,一幅照片的拍攝時(shí)間和地點(diǎn)等)以水印形式嵌入該作品中,這種隱式注釋不需要
15、額外的帶寬,且不易丟失。4) 篡改提示 當(dāng)數(shù)字作品被用于法庭、醫(yī)學(xué)、新聞及商業(yè)時(shí),常需確定它們的內(nèi)容是否被修改、偽造或特殊處理過。為實(shí)現(xiàn)該目的,通常可將原始圖像分成多個(gè)立塊,再將每個(gè)塊加入不同的水印。同時(shí)可通過檢測每個(gè)數(shù)據(jù)塊中的水印信號,來確定作品的完整性。與其他水印不同的是,這類水印必須是脆弱的,并且檢測水印信號時(shí),不需要原始數(shù)據(jù)。5) 使用控制 這種應(yīng)用的一個(gè)典型的例子是dvd 防拷貝系統(tǒng),即將水印信息加入ovo數(shù)據(jù)中,這樣ovo播放機(jī)即可通過檢測ovo數(shù)據(jù)中的水印信息而判斷其合法性和可拷貝性。從而保護(hù)制造商的商業(yè)利益。6)內(nèi)容認(rèn)證 如果數(shù)字水印不具有魯棒性,則當(dāng)數(shù)字媒體受到處理時(shí),嵌入到
16、其中的水印信息不可避免被破壞;根據(jù)水印被破壞的情況可以對數(shù)字媒體進(jìn)行內(nèi)容認(rèn)證。此時(shí),數(shù)字水印具有易碎性(或是半易碎性):對改變媒體內(nèi)容的處理不具有任何魯棒性,對不改變媒體內(nèi)容的處理具有一定的魯棒性,在此方面優(yōu)于數(shù)字簽名技術(shù)。這方面的研究已經(jīng)有很長時(shí)間了,并且己經(jīng)取得了豐碩的成果。目前主要分為可逆數(shù)字水印和不可逆數(shù)字水印。7)隱蔽通信及其對抗 數(shù)字水印所依賴的信息隱藏技術(shù)不僅提供了非密碼的安全途徑,可以實(shí)現(xiàn)網(wǎng)絡(luò)情報(bào)戰(zhàn)的革命。網(wǎng)絡(luò)情報(bào)戰(zhàn)是信息戰(zhàn)的重要組成部分,其核心內(nèi)容是利用公用網(wǎng)絡(luò)進(jìn)行保密數(shù)據(jù)傳送。由于經(jīng)過加密的文件往往是混亂無序的,容易引起攻擊者的注意。網(wǎng)絡(luò)多媒體技術(shù)的廣泛應(yīng)用使得利用公用網(wǎng)絡(luò)
17、進(jìn)行保密通信有了新的思路,利用數(shù)字化聲像信號相對于人的視覺、聽覺冗余,可以進(jìn)行各種信息隱藏,從而實(shí)現(xiàn)隱蔽通信。二、數(shù)字水印技術(shù)2.1數(shù)字水印的起源、概念和基本原理信息隱藏,也稱為信息偽裝(stegaflography),該單詞來源于古希臘,意思是將有用或重要的信息隱藏于其他信息里面以掩飾其存在,也就是將機(jī)密信息秘密地隱藏于另一非機(jī)密的文件內(nèi)容之中。密碼學(xué)是研究如何保護(hù)消息內(nèi)容的,而偽裝術(shù)(密寫術(shù))是專門研究如何隱藏它們的存在性。數(shù)字水印技術(shù)的基本思想源于古代的偽裝術(shù),古希臘的斯巴達(dá)人曾將軍事情報(bào)刻在普通的木板上,用石蠟填平,收信的一方只要用火烤熱木板,融化石蠟后就可以看到密信。使用最廣泛的密寫
18、方法恐怕要算化學(xué)密寫了,牛奶、白礬、果汁等都曾充當(dāng)過密寫藥水的角色。大約700年前,在手工造紙技術(shù)中出現(xiàn)了紙張上的水印。2.2數(shù)字水印的嵌入和提取數(shù)字水印是向多媒體數(shù)據(jù)中添加某些數(shù)字信息以達(dá)到文件真?zhèn)舞b別 、版權(quán)保護(hù)等功能。嵌入的水印信息隱藏于宿主文件中,不影響原始文件的可觀性和完整性。數(shù)字圖像水印處理過程主要包括水印生成、嵌入和檢測三個(gè)步驟。而整個(gè)水印系統(tǒng)還應(yīng)包括外界的攻擊過程。整個(gè)數(shù)字圖像水印系統(tǒng)的基本模型如圖所示。數(shù)字水印生成過程的輸入為原始信息、原始圖像和水印生成密鑰1,輸出為待嵌入的數(shù)字水印。人們通常采用的水印形式是二進(jìn)制序列。有時(shí),數(shù)字水印并不通過生成算法生成 ,而直接給定有意義的
19、圖形或圖標(biāo)作為數(shù)字水印。在水印嵌入過程中,原始圖像、水印以及嵌入密鑰k經(jīng)過嵌入函數(shù)的作用,生成含水印圖像 。通常 ,嵌入 函數(shù) 用 插入操作符作用在一組特征集()來描述 :() () 。根據(jù)水印所嵌入的特征集類型的不同 ,數(shù)字圖像水印算法一般分為空域算法和變換域算法兩類。 另外,一旦生成含水印圖像 ,該圖像將在一定的媒介中傳輸或流通 ,一定會受到一些有意或無意的攻擊 ,從而得到可疑圖像, 關(guān)于水印檢測,把根據(jù)檢測密鑰k(有時(shí)還需要原始圖像和原始水印)判斷可疑圖像是否存在水印的過程稱為水印檢測,而把根據(jù)提取密鑰 k提取可疑圖像中的水印的過程稱為水印提取。三、數(shù)字水印的典型算法 數(shù)字水印技術(shù)橫跨了
20、信號處理、數(shù)字通信、密碼學(xué)、模式識別等多種學(xué)科,各專業(yè)領(lǐng)域的研究者均有獨(dú)特的研究角度,其算法可謂是五花八門,無所不用,主要的有以下幾種:3.1最低有效位算法(lsb)最低有效位算法(lsb)是l.f.turner 和 r.g.van schyndel 等人提出的第一個(gè)數(shù)字水印算法,是一種典型的空間域信息隱藏算法。lsb 算法使用特定的密鑰通過m序列發(fā)生器產(chǎn)生隨機(jī)信號,然后按一定的規(guī)則排列成 2 維水印信號,并逐一插入到原始圖像相應(yīng)像素值的最低幾位。由于水印信號隱藏在最低位,相當(dāng)于疊加了一個(gè)能量微弱的信號,因而在視覺和聽覺上很難察覺。lsb 水印的檢測是通過待測圖像與水印圖像的相關(guān)運(yùn)算和統(tǒng)計(jì)決策
21、實(shí)現(xiàn)的。stego dos 、white noise storm 、 stools 等早期數(shù)字水印算法都采用了 lsb 算法。lsb 算法雖然可以隱藏較多的信息,但隱藏的信息可以被輕易移去,無法滿足數(shù)字水印的魯棒性要求,因此現(xiàn)在的數(shù)字水印軟件已經(jīng)很少采用lsb 算法了。不過,作為一種大數(shù)據(jù)量的信息隱藏方法, lsb 在隱蔽通信中仍占據(jù)著相當(dāng)重要的地位。本次實(shí)驗(yàn)我所采用就是lsb算法。3.2 patchwork 算法patchwork 是麻省理工學(xué)院媒體實(shí)驗(yàn)室 walter bander 等人提出的一種數(shù)字水印算法,主要用于打印票據(jù)的防偽。patchwork 數(shù)字水印隱藏在特定圖像區(qū)域的統(tǒng)計(jì)特性
22、中,其魯棒性很強(qiáng),可以有效地抵御剪切、灰度校正、有損壓縮等攻擊,其缺陷是數(shù)據(jù)量較低,對仿射變換敏感,對多拷貝平均攻擊的抵抗力較弱。3.3紋理塊映射編碼紋理塊映射將水印信息隱藏在圖像的隨機(jī)紋理區(qū)域中,利用紋理間的相似性掩蓋水印信息。該算法對濾波、壓縮和扭轉(zhuǎn)等操作具有抵抗能力,但需要人工干預(yù)。3.4 其他 文本微調(diào)算法、dct 變換域數(shù)字水印算法、直接序列擴(kuò)頻水印算法等四、lsb算法的vc實(shí)現(xiàn)lsb(最低有效位)算法是一種典型的空間域數(shù)據(jù)隱藏方法,該方法將特定的標(biāo)記隱藏于數(shù)字音頻和數(shù)字圖像內(nèi) 。 在灰度圖像中,每個(gè)像素通常為位 ,每一位的取值為或。在數(shù)字圖像中,每個(gè)像素的各個(gè)位對圖像的貢獻(xiàn)是不同的
23、 。對于位的灰度圖像每個(gè)像素的數(shù)據(jù)可用公式表示為 :式中:i表示像素的第幾位;表示第i位的取值,0,1。這樣,便可以把整個(gè)圖像分解為個(gè)位平面,從lsb(最低有效位 )msb(最高有效位 )。從位平面的分布來看 ,隨著位平面從低位到高(即 從位平面到位平面 ),位平面圖像的特征逐漸變得復(fù)雜 ,細(xì)節(jié)不斷增加。 到了比較低的位平面時(shí),單純從一 幅位平面上已經(jīng)逐漸不能看出和測試圖像的信息了。由于低位所代表的能量很少, 改變低位對圖像的質(zhì)量沒有太大的影響。lsb方法正是利用這一點(diǎn)在圖像低位隱藏水印信息。水印嵌入算法:本文采用vc技術(shù)來開發(fā)實(shí)現(xiàn)。所用的嵌入與提取密鑰將明文逐位轉(zhuǎn)換成密文,它是將密鑰流ki與
24、明文流pi進(jìn)行異或運(yùn)算產(chǎn)生密文比特流;cipiki ;在解密端 ,密文流與完全相同的密鑰流異或運(yùn)算恢復(fù)出明文流:piciki 遮掩消息的lsb 直接被待隱消息的比特位或兩者之間經(jīng)過某種邏輯運(yùn)算的結(jié)果所代替 ,在此用的是異或運(yùn)算。 主要代碼如下:void cdib:embed()/嵌入unsigned char bmdata;/bitmap dataunsigned char efdata;/embeddedfile dataint t = 7;int x8;int s8;int last_bit; /記錄字節(jié)最低位本來的bitfor(uint i1 = 0, i2 = 0; i1 <=
25、bitmap_size - 1, i2 <= embfile_size - 1; i1+)bmdata = *p;for (int j = 0; j <= 7; j+) /計(jì)算各bit位xj = bmdata & 1;bmdata >>= 1;last_bit = x0;x0 = x1 x2 x3 x4 x5 x6 x7;if (t = 7) /宿主圖片每走過八個(gè)字節(jié),計(jì)算一次sefdata = *q;for (j = 0; j <= 7; j+)sj = efdata & 1;efdata >>= 1;x0 = st;/隱藏信息if
26、(last_bit = 0) /嵌入隱藏信息*p |= x0;else*p &= 254 + x0;p+;t-;if (t = -1) /需要計(jì)算一次st = 7;q+;i2+;設(shè)計(jì)中不僅可以把水印嵌入到最低位,而且將水印分別嵌入到第1位,第2位等。通過對比,可以驗(yàn)證水印嵌入到最低為具有更好的不可見性,當(dāng)水印逐漸嵌入到高位時(shí),水印的不可見性越來越不好,甚至影響到圖片的視覺效果。水印提取算法設(shè)計(jì):主要代碼:void cdib:pick()/提取m_pfile = new unsigned char embfile_size;unsigned char *q = m_pfile;unsig
27、ned char bmdata;/bitmap dataint x8;int s8;int t = 7;for (uint i1 = 0, i2 = 0; i1 <= bitmap_size - 1, i2 <= embfile_size - 1; i1+)bmdata = *p;for (int j = 0; j <= 7; j+) /計(jì)算各bit位xj = bmdata & 1;bmdata >>= 1;st = x0 x1 x2 x3 x4 x5 x6 x7;t-;if (t = -1) /s7到s0組成一個(gè)字節(jié)*q = s7 * 128 + s6
28、* 64 + s5 * 32 + s4 * 16 + s3 * 8 + s2 * 4 + s1 * 2 + s0;t = 7;i2+;q+;p+; 對于水印的圖像提取,也就是將嵌入水印后的圖片的每個(gè)像素的r,g,b分量的最后一位還原成水印對引的二進(jìn)制序列,即用8個(gè)連續(xù)的最低位通過異或運(yùn)算獲取。五 、實(shí)驗(yàn)體會本文通過vc技術(shù)實(shí)現(xiàn)了數(shù)字圖像水印lsb算法 ,嵌入與提取密鑰是對稱密鑰算法中的序列密碼算法。通過設(shè)計(jì)可以方便地在宿主圖像中嵌人大量數(shù)字信息 ,在嵌入水 印容量上能實(shí)現(xiàn)較高容量和在最低位嵌入時(shí)有較好的不可見性。lsb算法的優(yōu)點(diǎn)是其算法簡單,計(jì)算速度比較快。但是對圖像的各種操作如壓縮、剪切等
29、,都會使算法的可靠性受到影響,也有可能通過噪聲增加或有損 壓縮而消除水印,即魯棒性較差 。 針對lsb算法的特點(diǎn),我們可以提出改進(jìn):把水印信息先進(jìn)行壓縮、加密編碼 ,通過相應(yīng)函數(shù)重新排序,打亂正常序列,隨機(jī)形式加入印信息 ,來提高水印算法的魯棒性和安全性。因此,lsb算法需要結(jié)合加密等方法提高其魯棒性和安全性。藏較多的信息,但隱藏的信息可以被輕易移去,無法滿足數(shù)字水印的魯棒性要求,因此現(xiàn)在的數(shù)字水印軟件已經(jīng)很少采用lsb 算法了。不過,作為一種大數(shù)據(jù)量的信息隱藏方法, lsb 在隱蔽通信中仍占據(jù)著相當(dāng)重要的地位。參考書目:【1】數(shù)字水印理論與技術(shù) 金聰編著 清華大學(xué)出版社【2】數(shù)字水印理論與技
30、術(shù) 楊義先 鈕心忻 編著 高等教育出版社【3】visual c+圖形用戶界面開發(fā)指南 李傅軒等編著 清華大學(xué)出 版社【4】胡榮,陳健.數(shù)字圖像的水印技術(shù).上海交通大學(xué)學(xué)報(bào),2001附錄1:算法設(shè)計(jì)說明書數(shù)字水印是向多媒體數(shù)據(jù)中添加某些數(shù)字信息以達(dá)到文件真?zhèn)舞b別 、版權(quán)保護(hù)等功能。嵌入的水印信息隱藏于宿主文件中,不影響原始文件的可觀性和完整性。數(shù)字圖像水印處理過程主要包括水印生成、嵌入和檢測三個(gè)步驟。而整個(gè)水印系統(tǒng)還應(yīng)包括外界的攻擊過程。整個(gè)數(shù)字圖像水印系統(tǒng)的基本模型如圖所示。數(shù)字水印生成過程的輸入為原始信息、原始圖像和水印生成密鑰1,輸出為待嵌入的數(shù)字水印。人們通常采用的水印形式是二進(jìn)制序列。
31、有時(shí),數(shù)字水印并不通過生成算法生成 ,而直接給定有意義的圖形或圖標(biāo)作為數(shù)字水印。在水印嵌入過程中,原始圖像、水印以及嵌入密鑰k經(jīng)過嵌入函數(shù)的作用,生成含水印圖像 。通常 ,嵌入 函數(shù) 用 插入操作符作用在一組特征集()來描述 :() () 。根據(jù)水印所嵌入的特征集類型的不同 ,數(shù)字圖像水印算法一般分為空域算法和變換域算法兩類。 另外,一旦生成含水印圖像 ,該圖像將在一定的媒介中傳輸或流通 ,一定會受到一些有意或無意的攻擊 ,從而得到可疑圖像, 關(guān)于水印檢測,把根據(jù)檢測密鑰k(有時(shí)還需要原始圖像和原始水?。┡袛嗫梢蓤D像是否存在水印的過程稱為水印檢測,而把根據(jù)提取密鑰 k提取可疑圖像中的水印的過程
32、稱為水印提取。lsb(最低有效位)算法是一種典型的空間域數(shù)據(jù)隱藏方法,該方法將特定的標(biāo)記隱藏于數(shù)字音頻和數(shù)字圖像內(nèi) 。 在灰度圖像中,每個(gè)像素通常為位 ,每一位的取值為或。在數(shù)字圖像中,每個(gè)像素的各個(gè)位對圖像的貢獻(xiàn)是不同的 。對于位的灰度圖像每個(gè)像素的數(shù)據(jù)可用公式表示為 :式中:i表示像素的第幾位;表示第i位的取值,0,1。這樣,便可以把整個(gè)圖像分解為個(gè)位平面,從lsb(最低有效位 )msb(最高有效位 )。從位平面的分布來看 ,隨著位平面從低位到高(即 從位平面到位平面 ),位平面圖像的特征逐漸變得復(fù)雜 ,細(xì)節(jié)不斷增加。 到了比較低的位平面時(shí),單純從一 幅位平面上已經(jīng)逐漸不能看出和測試圖像的
33、信息了。由于低位所代表的能量很少, 改變低位對圖像的質(zhì)量沒有太大的影響。lsb方法正是利用這一點(diǎn)在圖像低位隱藏水印信息。本文采用vc技術(shù)來開發(fā)實(shí)現(xiàn)。所用的嵌入與提取密鑰將明文逐位轉(zhuǎn)換成密文,它是將密鑰流ki與明文流pi進(jìn)行異或運(yùn)算產(chǎn)生密文比特流;cipiki ;在解密端 ,密文流與完全相同的密鑰流異或運(yùn)算恢復(fù)出明文流:piciki 遮掩消息的lsb 直接被待隱消息的比特位或兩者之間經(jīng)過某種邏輯運(yùn)算的結(jié)果所代替 ,在此用的是異或運(yùn)算。附錄二:主要原程序/ dib.cpp#include "stdafx.h"#include "dib.h"cdib:cdib
34、()m_pdib = null;m_pworddata = null;m_pfile = null;m_polddibshow = null;cdib:cdib()if( m_pdib != null )delete m_pdib;if( m_pworddata != null )delete m_pworddata;if (m_pfile != null)delete m_pfile;if (m_polddibshow != null)delete m_polddibshow;bool cdib:load( const char *pszfilename )cfile cf;if( !cf.
35、open( pszfilename, cfile:moderead ) )return( false );dword dwdibsize;dwdibsize =cf.getlength() - sizeof( bitmapfileheader );unsigned char *pdib;pdib = new unsigned char dwdibsize;if( pdib = null )return( false );bitmapfileheader bfh;tryif( cf.read( &bfh, sizeof( bitmapfileheader ) )!= sizeof( bi
36、tmapfileheader ) |bfh.bftype != 'mb' |cf.read( pdib, dwdibsize ) != dwdibsize )delete pdib;return( false );catch( cfileexception *e )e->delete();delete pdib;return( false );cf.close();if( m_pdib != null )delete m_pdib; if (bfh.bfreserved1 != 0) /含有隱藏信息,保存其大小if (bfh.bfreserved2 = 0)embfile
37、_size = bfh.bfreserved1;elseembfile_size = bfh.bfreserved1 + 65535;m_pdib = pdib;m_dwdibsize = dwdibsize;m_pbih = (bitmapinfoheader *) m_pdib;m_ppalette =(rgbquad *) &m_pdibsizeof(bitmapinfoheader);m_npaletteentries = 1 << m_pbih->bibitcount;if( m_pbih->bibitcount > 8 ) m_npalette
38、entries = 0;else if( m_pbih->biclrused != 0 )m_npaletteentries = m_pbih->biclrused;m_pdibbits = &m_pdibsizeof(bitmapinfoheader)+m_npaletteentries*sizeof(rgbquad);if( m_palette.getsafehandle() != null )m_palette.deleteobject();if( m_npaletteentries != 0 ) logpalette *plogpal = (logpalette *
39、) new charsizeof(logpalette)+m_npaletteentries*sizeof(paletteentry);if( plogpal != null )plogpal->palversion = 0x300;plogpal->palnumentries = m_npaletteentries;for( int i=0; i<m_npaletteentries; i+ )plogpal->palpalentryi.pered =m_ppalettei.rgbred;plogpal->palpalentryi.pegreen =m_ppale
40、ttei.rgbgreen;plogpal->palpalentryi.peblue =m_ppalettei.rgbblue;m_palette.createpalette( plogpal );delete plogpal;m_bitcount = 24; /24位位圖p = m_pdibbits; /指向位圖數(shù)據(jù)的指針,用來執(zhí)行處理操作用bitmap_size = m_dwdibsize - (m_pdibbits - m_pdib);/真正的位圖數(shù)據(jù)的大?。闯^結(jié)構(gòu)外)tag = bfh.bfreserved1;return( true );bool cdib:save( co
41、nst char *pszfilename ) /保存含有隱藏信息的bmpif( m_pdib = null )return( false );cfile cf;if( !cf.open( pszfilename,cfile:modecreate | cfile:modewrite ) )return( false );trybitmapfileheader bfh;memset( &bfh, 0, sizeof( bitmapfileheader ) );bfh.bftype = 'mb'bfh.bfsize = sizeof( bitmapfileheader )
42、+ m_dwdibsize;bfh.bfoffbits = sizeof( bitmapfileheader ) +sizeof( bitmapinfoheader ) +m_npaletteentries * sizeof( rgbquad );if (embfile_size <= 65535) /由于bfreserved1是unsigned short型的,大小可能不能滿足要求,可能要用到reserved2bfh.bfreserved1 = embfile_size; elsebfh.bfreserved1 = embfile_size - 65535;bfh.bfreserved
43、2 = 1; /標(biāo)記cf.write( &bfh, sizeof( bitmapfileheader ) );cf.write( m_pdib, m_dwdibsize );catch( cfileexception *e )e->delete();return( false );return( true );bool cdib:draw( cdc *pdc, int nx, int ny, int nwidth, int nheight, int style ) if( m_pdib = null )return( false ); long vwidth = m_pbih-&
44、gt;biwidth; if( nwidth = -1 ) nwidth = m_pbih->biwidth;if( nheight = -1 ) nheight = m_pbih->biheight; if (style) stretchdibits( pdc->m_hdc, nx, ny, nwidth, nheight, 0, 0, m_pbih->biwidth, m_pbih->biheight, m_pdibbits, (bitmapinfo *) m_pbih,bi_rgb, srccopy ); else setdibitstodevice( pd
45、c->m_hdc, nx, ny, m_pbih->biwidth, m_pbih->biheight,0, 0, 0, m_pbih->biheight, m_pdibbits, (bitmapinfo *) m_pbih, bi_rgb); return( true );bool cdib:loadembfile(const char * pszfilename)cfile cf;if( !cf.open( pszfilename, cfile:moderead ) )return( false );dword dwfilesize;dwfilesize = cf.
46、getlength();embfile_size = dwfilesize;unsigned char *pfile;pfile = new unsigned char dwfilesize;cf.read( pfile, dwfilesize ); /將文件中內(nèi)容讀入數(shù)組,解下來就開始嵌入操作m_pfile = pfile;q = pfile; /記錄下位置return true;void cdib:embed()/嵌入unsigned char bmdata;/bitmap dataunsigned char efdata;/embeddedfile dataint t = 7;int x
47、8;int s8;int last_bit; /記錄字節(jié)最低位本來的bitfor(uint i1 = 0, i2 = 0; i1 <= bitmap_size - 1, i2 <= embfile_size - 1; i1+)bmdata = *p;for (int j = 0; j <= 7; j+) /計(jì)算各bit位xj = bmdata & 1;bmdata >>= 1;last_bit = x0;x0 = x1 x2 x3 x4 x5 x6 x7;if (t = 7) /宿主圖片每走過八個(gè)字節(jié),計(jì)算一次sefdata = *q;for (j = 0
48、; j <= 7; j+)sj = efdata & 1;efdata >>= 1;x0 = st;/隱藏信息if (last_bit = 0) /嵌入隱藏信息*p |= x0;else*p &= 254 + x0;p+;t-;if (t = -1) /需要計(jì)算一次st = 7;q+;i2+;void cdib:pick()/提取m_pfile = new unsigned char embfile_size;unsigned char *q = m_pfile;unsigned char bmdata;/bitmap dataint x8;int s8;int t = 7;for (uint i1 = 0, i2 = 0; i1 <= bitmap_size - 1, i2 <= embfile_size - 1; i1+)bmdata = *p;for (int j = 0; j <= 7; j+) /計(jì)算各bit位xj = bmdata & 1;bmdata >>= 1;st = x0 x1 x2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動輸液器相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 比賽計(jì)課程設(shè)計(jì)
- 路面?zhèn)鞲衅飨嚓P(guān)行業(yè)投資規(guī)劃報(bào)告范本
- 步進(jìn)電動機(jī)課程設(shè)計(jì)
- 步數(shù)計(jì)數(shù)器課程設(shè)計(jì)
- 定點(diǎn)洗車合同范本
- 施工單價(jià)合同范本
- 制定年度生產(chǎn)回顧與規(guī)劃計(jì)劃
- 四年級數(shù)學(xué)三位數(shù)除以兩位數(shù)綜合檢測例題
- 時(shí)間管理與效率提升培訓(xùn)
- 最新VTE指南解讀(靜脈血栓栓塞癥的臨床護(hù)理指南解讀)
- 博鰲亞洲論壇海南年會PPT模板
- 新教材人教版高中化學(xué)選擇性必修三全冊教學(xué)課件
- 2023年銀行業(yè)風(fēng)險(xiǎn)管理(中級)考試考試題庫(真題整理)
- 監(jiān)護(hù)儀培訓(xùn)-PPT課件
- 溝通技巧游戲
- 教室的衛(wèi)生調(diào)查及測量方法林蓉
- 普通螺旋傳動優(yōu)秀課件
- 部編版語文五年級上冊單元主題閱讀第四單元 課件(66張PPT)
- 心律失常 ppt
- 《稅收基礎(chǔ)》課程標(biāo)準(zhǔn)
評論
0/150
提交評論