畢業(yè)設(shè)計說明說參考例如2_第1頁
畢業(yè)設(shè)計說明說參考例如2_第2頁
畢業(yè)設(shè)計說明說參考例如2_第3頁
畢業(yè)設(shè)計說明說參考例如2_第4頁
畢業(yè)設(shè)計說明說參考例如2_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——畢業(yè)設(shè)計說明說參考例如2

畢業(yè)設(shè)計說明書

批量信息隱蔽技術(shù)研究與實現(xiàn)

劉毅敏1206034116學(xué)生姓名:學(xué)號:軟件學(xué)院

學(xué)院:軟件工程(軟件開發(fā)與測試方向)專業(yè):***指導(dǎo)教師:

2023年6月

批量信息隱蔽技術(shù)研究與實現(xiàn)

摘要

伴隨著信息技術(shù)的飛速發(fā)展,信息安全問題受到好多關(guān)注。信息隱蔽技術(shù)也得到了很大的發(fā)展,隨著這些的發(fā)展,也帶來了大量關(guān)于這方面算法的研究。

本文主要介紹了信息隱蔽的背景及原理,在信息隱蔽的基礎(chǔ)上,實現(xiàn)對成批數(shù)據(jù)進行隱蔽,以MAtlab為工具,利用GUI完成對系統(tǒng)的構(gòu)建。整個系統(tǒng)分為了對數(shù)據(jù)的嵌入和提取,顯示嵌入載體,頻譜分析等模塊。其中主要是對于隱蔽的算法進行了相應(yīng)改進,利用了LSB算法,在其基礎(chǔ)上對成批數(shù)據(jù)進行了隔段算法嵌入與提取,和二叉樹算法的嵌入與提取。并且每種算法原圖片和嵌入數(shù)據(jù)后的圖片都有直方圖比對。

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

1緒論

1.1課題的提出1.1.1課題的產(chǎn)生與發(fā)展

計算機及網(wǎng)絡(luò)的飛速發(fā)展在帶給人們通訊便利的同時,也對通訊安全帶了挑戰(zhàn),信息安全問題日益突出。而現(xiàn)在的信息安全技術(shù)幾乎都是基于密碼學(xué)理論的,即將文件加密成密文,使得那些具有非法企圖的個人或集團,不能對密文進行正確解讀,使得信息得以安全保存和傳遞。由于時代在不斷進步,計算機處理能力也越來越高,因此傳統(tǒng)的通過增加密鑰長度來提高系統(tǒng)安全的方法也變得更加的不可靠。信息的保密性,也在遭遇著嚴(yán)重的挑戰(zhàn)。

當(dāng)今社會,數(shù)字多媒體技術(shù)應(yīng)用越來越普遍,大量的文件,音像資料,圖片等都需要認(rèn)證和版權(quán)保護[2]。例如,以音像資料為例,其本質(zhì)上也是數(shù)字信號,若采用密碼加密方式,就會忽視其本身信號屬性,因此具有偽裝特點的信息隱蔽技術(shù)應(yīng)運而生。

作為隱蔽通信和版權(quán)保護的有效手段,并受到人們的特別關(guān)注。特別是數(shù)字圖像作為載體的信息隱蔽與傳統(tǒng)加密方法不盡一致,利用所具有的迷惑性產(chǎn)生的信息隱蔽更能經(jīng)受起惡意者的攻擊[3]。

由于這些原因,認(rèn)為批量信息隱蔽技術(shù)研究與實現(xiàn)確實可以給現(xiàn)實生活中的安全與機密信息傳送帶來便利。特別是以圖像為載體,將機要信息藏于其中,完成成批數(shù)據(jù)的傳輸,利用相應(yīng)算法保證嵌入的規(guī)律不易被推斷,保證傳輸數(shù)據(jù)的安全性。隨著理論研究的不斷完善,必將在社會中得到廣泛應(yīng)用。1.1.2課題的現(xiàn)狀及提出

現(xiàn)代數(shù)字信息隱蔽的歷史可以追溯到1954年,Muza公司的EmilHembrooke獲得一項名為“Identifieatiofsoundandlikesignals〞的專利,專利中描述了向音樂中嵌入不可感知的信號來證明所有權(quán)的方法[4]。1983年Simons提出了具有代表性的“囚犯問題〞,此問題引發(fā)了人們對信息隱蔽技術(shù)的研究熱潮。

VanSchyndel在ICIP’94會議上發(fā)表了題為“Adigitalwatermark〞的文章,它是第一篇在主要會議上發(fā)表的關(guān)于數(shù)字水印的文章,其中說明了一些關(guān)于水印的重要概念,它被認(rèn)為是一篇具有歷史價值的文獻。1996年5月30日至6月1

[1]

第1頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

日在英國劍橋大學(xué)召開了國際第一屆信息隱蔽學(xué)術(shù)研討會(FirstInternationalWorkshoponInfor-mationHiding),會上對信息隱蔽的部分英文術(shù)語和學(xué)科分支進行了統(tǒng)一和規(guī)范,標(biāo)志著信息隱蔽學(xué)科正式誕生[5]。直到現(xiàn)在,已經(jīng)舉行了多屆國際信息隱蔽學(xué)術(shù)研討會,其研究內(nèi)容從空域信息隱蔽正在逐步轉(zhuǎn)向頻域的信息隱蔽,從以數(shù)字水印為主的研究正逐步轉(zhuǎn)向與數(shù)據(jù)壓縮、數(shù)據(jù)融合、神經(jīng)網(wǎng)絡(luò)等學(xué)科的理論和方法相結(jié)合的理論和應(yīng)用研究。

國內(nèi)關(guān)于信息隱蔽技術(shù)的研究從1999年開始興起,其標(biāo)志是由我國信息科學(xué)領(lǐng)域的何德全、周仲義、蔡吉人三位院士聯(lián)合發(fā)起的全國信息隱蔽學(xué)術(shù)研討會,至今已經(jīng)舉行了七屆全國學(xué)術(shù)會議,CIHW1999北京、CIHW2000北京、CIHW2023XX等?!拔鞅惫I(yè)大學(xué)〞錢思進教授所著的“信息隱蔽與信息安全〞,該文介紹了信息隱蔽技術(shù)和信息隱蔽分析技術(shù),分析了基于數(shù)字圖像的信息隱蔽分析技術(shù),并對現(xiàn)有的多種信息隱蔽分析方法和研究現(xiàn)狀進行了深入探討[6]。研討會聚集了國內(nèi)從事多媒體信息安全技術(shù)研究的權(quán)威專家和廣大學(xué)者,促進了我國的信息隱蔽學(xué)術(shù)研究及其應(yīng)用,國內(nèi)的研究主要集中在數(shù)字水印方面。2023年“北京電子技術(shù)應(yīng)用研究所〞的林代茂,胡嵐,郭云彪,周琳娜等在中山大學(xué)學(xué)報(自然科學(xué)版)上發(fā)表了“廣義信息隱蔽技術(shù)的安全問題〞,該文對對信息隱蔽的安全性問題進行了深入探討,給出了不同應(yīng)用模式下的信息隱蔽安全性定義,結(jié)合廣義信息隱蔽有關(guān)理論給出了廣義信息隱蔽安全性條件,并利用感知系統(tǒng)空間理論加以確切描述,在分析理論安全的基礎(chǔ)上,對廣義信息隱蔽的現(xiàn)實安全給出了解釋[7]。

隨著我國對信息隱蔽研究的不斷升入,各種各樣的信息隱蔽分支相繼出現(xiàn),數(shù)字圖像的信息安全問題成為研究課題。它主要包括數(shù)字圖像的隱蔽、數(shù)字水印和數(shù)字圖像的分存等課題[8]。數(shù)字圖像分存技術(shù)作為圖像信息安全的一個重要課題,主要研究如何把一幅機要的數(shù)字圖像分解成幾幅無意義或者雜亂無章的圖像或者偽裝到幾幅有意義的圖像中進行存儲或傳輸,它可以避免由于少數(shù)圖像信息的丟失而造成嚴(yán)重的事故,同時在通信中個別圖像信息的泄露不會引起整個圖像信息的丟失

[9]

。在圖像分存與信息隱蔽相結(jié)合情形下,將機要信息分解為若干子機要存于若干

圖片中,機要信息不會由于某幾個子圖片的丟失而消失,在恢復(fù)階段當(dāng)指定的若干子圖片集合在一起機要信息便可恢復(fù),因此多載體批量信息隱蔽技術(shù)的研究與實現(xiàn)將會變得更具有實際意義。

第2頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

1.2課題研究基礎(chǔ)

1.2.1信息隱蔽技術(shù)的基本概念

信息隱蔽運用各種信號處理方法將需要加密的信息隱蔽在一般的多媒體數(shù)據(jù)中,若途中被非法截得,也只能得到載體的信息,而不會意識到其中包含機要信息

[10]

。信息隱蔽的優(yōu)點在于它不僅隱蔽了信息的具體內(nèi)容,而且隱蔽了信息的存在,

因此在信息安全領(lǐng)域顯示出巨大的優(yōu)勢。1.2.2信息隱蔽的一般模型

在信息隱蔽中,尋常稱待隱蔽的機要信息為嵌入對象,稱用于隱蔽嵌入對象的公開信息為載體對象[11]。嵌入對象和載體對象可以是文本、圖像、音頻或視頻等等。隱蔽技術(shù)主要研究如何將機要信息嵌入到載體對象中生成隱蔽對象,而隱蔽分析技術(shù)則主要考慮如何從隱蔽對象中檢測并破譯出嵌入信息,或?qū)﹄[蔽對象進行某些處理以達到破壞嵌入對象的目的[12]。圖1.1給出了一個信息隱蔽系統(tǒng)的基本模型:

密鑰生成與分派嵌入密鑰原始數(shù)據(jù)嵌入運算合成數(shù)據(jù)提取密鑰提取運算隱秘信息隱秘信息隱秘攻擊圖1.1信息隱蔽系統(tǒng)基本模型框圖

1.2.3信息隱蔽的特征

信息隱蔽是信息保護的一種手段,不同于傳統(tǒng)的密碼學(xué)。信息隱蔽技術(shù)必需考慮正常的信息操作所造成的要挾,即要使機密信息對正常的數(shù)據(jù)操作技術(shù)具有免疫力。這種免疫力的關(guān)鍵是使隱蔽信息不易被正常的數(shù)據(jù)操作所破壞

[13]

。盡管信息隱

藏技術(shù)存在著大量不同的分支,但是根據(jù)信息隱蔽的目的和技術(shù)要求,該技術(shù)存在以下共同特性:

⑴不可感知性:指嵌入信息后在不引起機要信息質(zhì)量下降的前提下,不顯著改變載體對象的外部特征,即不引起人們感官上對載體對象變化的覺察。從安全的角度考慮,載體對象與隱蔽載體還應(yīng)具有一致的噪聲統(tǒng)計分布等特性,不致使非法攔截者判斷出機要信息的存在,以至于破壞信息隱蔽系統(tǒng)的安全性。

第3頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

⑵魯棒性:指隱蔽載體對一般的信號處理(如濾波、加強、重采樣、有損壓縮等)、一般的幾何變換(如平移、旋轉(zhuǎn)、縮放、分割等)等惡意攻擊具有一定的穩(wěn)健性,即宿主信號受到一定的波動,也可恢復(fù)隱蔽信息。

⑶自恢復(fù)性:指經(jīng)過了一些操作和變換后,可能會使隱蔽載體受到較大的破壞,假使只留下部分的數(shù)據(jù),在不需要宿主信號的狀況下,卻依舊能恢復(fù)隱蔽信息的特征。

⑷安全性:指隱蔽算法有較強的抗攻擊能力,即隱蔽載體在承受一定程度的人為攻擊的狀況下而不致使隱蔽信息遭到破壞的能力。隱蔽的信息內(nèi)容應(yīng)是安全的,應(yīng)經(jīng)過某種加密后再隱蔽,同時隱蔽的具體位置也應(yīng)是安全的,至少不會因格式變換而遭到破壞。且第三方在不知道隱蔽算法和密鑰時,均不能獲得機要信息。

⑸可糾錯性:為了保證隱蔽信息的完整性,使其在經(jīng)過各種操作和變換后仍能很好地恢復(fù),尋常采取糾錯編碼方法達到這一目的[14]。1.2.4GUI界面設(shè)計系統(tǒng)的介紹

MATLAB是當(dāng)今最優(yōu)秀的科技應(yīng)用軟件之一,以強大的計算與可視化功能,簡單易用,開放式可擴展環(huán)境,特別是所附帶的30多種面向不同領(lǐng)域的工具箱支持,使得它在大量科學(xué)領(lǐng)域中成為計算機輔助設(shè)計與分析,算法研究和應(yīng)用開發(fā)的基本工具和首選平臺。GUI是一種圖形化的溝通界面,通過此界面可以便利的達到一些特定控制的操作,而這些界面又是由按鈕,窗口,工具欄,鍵盤等操作對象所構(gòu)成的,以便利借助這些界面調(diào)用MATLAB來進行運算操作[15]。GUI是未來的趨勢,由于人類對于圖形辨識能力遠超于其他表達方式,因此借助于GUI程序可以設(shè)計出專屬某個主題的圖形化界面。

第4頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

2批量信息隱蔽中相關(guān)算法的介紹

2.1課題的任務(wù)

本次設(shè)計通過LSB算法以及它的相應(yīng)改進算法,將成批數(shù)據(jù)存入載體圖像中,這些數(shù)據(jù)可以是圖片也可以是文本,在嵌入過程完成后將兩者通過直方圖進行了比較,最終將其依照嵌入時的規(guī)則在相應(yīng)位置進行提取。2.2LSB算法

LSB算法主要包括一個嵌入過程和一個提取過程。嵌入過程是指信息隱蔽者利用嵌入密鑰將嵌入對象添加到載體對象中,從而生成隱蔽對象這一過程。提取過程是指利用提取密鑰從接收到的可能經(jīng)過修改的隱蔽對象中恢復(fù)嵌入對象。在提取過程中可能需要載體對象、也可能不需要載體對象。為了提高保密性需要預(yù)先對隱蔽信息進行預(yù)處理(如加密)而得到嵌入對象,相應(yīng)地在提取過程中要對得到的嵌入對象進行解預(yù)處理(如解密),恢復(fù)為原隱蔽信息。

一種典型的LSB算法:最低有效位替換:

設(shè)對載體圖像的掃描方式為從左下開始,先行后列,且其像素數(shù)為lcr,Cji

為位于ji的像素點的最低有效位,機要信息長度為lm比特,位置i的相應(yīng)機要信息為mi(mi=1或0)。嵌入過程如下:從一副載體圖像中選擇一個像素點子集{j1,j2,…,ji}(ji為在圖像中的位置),然后將Ck替換為mi即可。在提取過程中,按嵌入時的方法抽出被選擇嵌入信息的載體元素,然后提取相應(yīng)最低比特位信息即得到隱秘信息。

2.3LSB算法的改進隔段嵌入

對于LSB算法,由于嵌入休止是針對圖片矩陣的像素點,逐個順序嵌入的,這種方式實現(xiàn)簡單,但是非法人員截得嵌有密文的載體后,依照一般思路,將其順序提取,這樣密鑰很簡單將被泄露,因此隔段嵌入就是采用在嵌入階段,不依照順序逐個嵌入,采用隔幾個像素點嵌入密鑰轉(zhuǎn)換后的二進制流,這樣就將不容被提取泄密,順序提取的話將得到的是一串串亂碼,而非真正的密鑰。2.4LSB算法的改進二叉樹嵌入

隔段嵌入盡管在一定程度上解決了順序嵌入帶來的密鑰泄露的問題,但是并沒有真正解決,由于隔段嵌入的規(guī)則太過明顯,一旦被識破,還是很簡單被提取的,

第5頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

為此在嵌入階段就要采取一種規(guī)則不明顯的方式進行嵌入,采用二叉樹方式尋覓像素點進行嵌入的話,這樣像素點的位置規(guī)律,不簡單像隔段那樣彼此差距規(guī)整,這樣將不會被非法用戶很簡單截得真正的密鑰信息,只有依照設(shè)計者的方式,在相應(yīng)位置尋覓嵌入的二進制密鑰信息,才會真正提取正確的信息。2.5直方圖分析

在載體中嵌入了一定量的密文后,就需要對二者進行相應(yīng)的比較,當(dāng)嵌入密鑰的載體能夠在視覺上無區(qū)別的顯示出與本體可以亂真的圖像后,本次嵌入才可以算是成功。但是,嵌入密鑰后的圖片必定會與本身真正的圖片存在一定的不同,為了比較兩者的區(qū)別就參與了直方圖分析,通過將原圖片和嵌入密鑰的圖片放到一起,將二者的直方圖顯示出來,通過對比則可以,看出彼此的區(qū)別。2.6隔段提取

通過了對LSB的第一層的改進,進行隔段嵌入后,得到嵌入密鑰后的圖片,為了能夠?qū)⒚芤_提取我們需要,依照隔段嵌入的規(guī)則,找到嵌入了密鑰的像素點的具體位置,通過相對于嵌入相逆的方式,將密鑰的二進制比特流提取出來,接著進行相關(guān)的轉(zhuǎn)化,將其轉(zhuǎn)化為文本或者BMP圖片。2.7二叉樹提取

相對應(yīng)與隔斷提取,二叉樹提取也是采用二叉樹嵌入階段時嵌入規(guī)則,依照相對應(yīng)的方式在所需要提取的載體圖片上,依照二叉樹規(guī)則正確尋覓到需要提取二進制流的像素點,通過相逆與嵌入的過程,將相應(yīng)二進制流提取出來,然后在進行相關(guān)轉(zhuǎn)化,將其轉(zhuǎn)化為文本或者圖片。

第6頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

3批量信息隱蔽系統(tǒng)的詳細(xì)設(shè)計

3.1批量信息隱蔽系統(tǒng)整體的設(shè)計過程

整個系統(tǒng)的實現(xiàn),首先想到的是整個界面的規(guī)劃,采用MATLAB7.0中的GUI界面化設(shè)計,來對整個界面進行相關(guān)規(guī)劃,首先是需要對嵌入的載體進行區(qū)分,為此設(shè)計了,復(fù)選框按鍵,一個是圖片,另一個是文本。當(dāng)其選中相關(guān)按鍵后,表示接下來將要嵌入密鑰是何種類型,然后對該類型的密鑰信息進行相應(yīng)的的處理。這個過程的流程圖如圖3.1所示:

開始進入系統(tǒng)初始界面Yc9=1還是c8=1N讀入載體圖片并顯示密鑰為文本進入選擇判定流程文本圖片的相關(guān)處理密鑰為圖片判斷嵌入類型終止

圖3.1顯示載圖片并進行密鑰類型判定

接著是設(shè)計了相關(guān)算法的選擇按鈕,在LSB基礎(chǔ)上設(shè)計了兩種基本算法,一種是對LSB的簡單改進,隔斷嵌入方式;另一種是對于隔斷方式又進行了改進的二叉樹嵌入方式。由于要對批量信息進行處理,因此設(shè)計了四個載體,三個密鑰來實現(xiàn)量化。三個密鑰可以向四個載體中任意一個進行嵌入,并且在嵌入時可以選擇相應(yīng)的嵌入算法。當(dāng)嵌入完成后,可以點擊頻譜分析的按鍵,然后對原有圖像和嵌入了一定密鑰后的圖像進行分析,顯示出它們的直方圖,從而可以直觀的比較出嵌入后所引起的區(qū)別。在直方圖的比較完成后,進入下一階段,即提取密鑰信息的階段。由于我們當(dāng)時嵌入時可以選擇不同的算法進行嵌入,因此在我們提取時,就要注意相關(guān)的一些事項。我們需要選擇將要提取的密鑰信息的相應(yīng)載體,和提取時的相關(guān)

第7頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

算法,注意此時的這個算法必需和嵌入時的相對應(yīng),然后點擊提取按鍵就可顯示出相應(yīng)的密鑰信息。當(dāng)整個過程終止后,我們可以針對兩種算法中曾經(jīng)設(shè)置的記錄基本操作次數(shù)的宏觀變量進行一些比較,粗略的得出兩種算法在相應(yīng)情形下的優(yōu)劣,這個過程的流程圖如圖3.2所示:

開始進入嵌入算法的判定s2=1s2=1還是s3=1s3=1隔段嵌入算法二叉樹嵌入算法顯示嵌入后的結(jié)果進行直方圖對比提取密鑰信息相關(guān)算法的簡單比較終止

圖3.2算法的選擇及相應(yīng)的嵌入提取過程

3.2批量信息隱蔽系統(tǒng)主界面的實現(xiàn)

程序的設(shè)計語言是MATLAB,采用其中的GUI可視化編程。首先利用了復(fù)選框按鍵checkbox,用于對嵌入類型,嵌入信息以及嵌入載體的選擇。然后通過單項選擇框按鈕radiobutton來對算法進行選擇。最終在pushbutton對應(yīng)的框架中對相應(yīng)的功能進行了相關(guān)設(shè)計。最終在這些基礎(chǔ)上設(shè)計出一個簡單的批量信息隱蔽系統(tǒng),系統(tǒng)

第8頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

的具體界面如下圖3.3所示:

圖3.3系統(tǒng)初始界面

3.3顯示載體圖片

在系統(tǒng)設(shè)計的最初,首先對將要嵌入的載體進行初步了解,因此通過本功能將其直觀的顯示出來,其相應(yīng)的代碼如下:I=imread('D:\\tupian\\tu6.bmp');H=imread('D:\\tupian\\tu7.bmp');figure;

subplot(221);imshow(I);title('圖1');subplot(222);imshow(H);title('圖2');A=imread('D:\\tupian\\tu8.bmp');B=imread('D:\\tupian\\tu9.bmp');subplot(223);imshow(A);title('圖3');subplot(224);imshow(B);title('圖4');

當(dāng)載體圖片顯示出后,我們可以依照自己的愛好,將自己所要隱蔽的一批密鑰信息嵌于自己喜歡的載體圖片中。

第9頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

3.4宏觀控制的數(shù)據(jù)量

由于本系統(tǒng)需要對多個載體和多個密鑰,進行嵌入和提取,以及對相關(guān)算法進行選擇,因此宏觀上就需要一些可以在整體上控制的變量,來進行相關(guān)的控制。

globalc1;globalc2;globalc3;globalc4;

globalc5;globalc6;globalc7;globallen_total;

globalc8;globalc9;globals2;globals3;

上述的宏觀變量中c1,c2,c3,c4是對嵌入載體進行選擇;c5,c6,c7是對嵌入的信息進行相關(guān)的選擇;c8,c9是對嵌入的類型(文本,圖片)進行選擇;s2,s3是對相關(guān)算法進行的選擇。這些宏觀變量通過值0,1來進行控制,值0表示相應(yīng)按鍵未選中,值1表示已經(jīng)選中。3.5文本作為批量數(shù)據(jù)的嵌入

選擇文本為嵌入密鑰時,通過按鍵選擇使C9為1,選中文本,然后選擇相關(guān)的密鑰信息,和要嵌入密鑰信息的載體圖。得到載體圖的像素矩陣,然后讀取密鑰文本將其轉(zhuǎn)化為相應(yīng)的二進制流,讀取,并得到其最大長度,然后判斷密鑰的長度是否大于像素矩陣的容量。當(dāng)容量判斷好后,進入算法選擇的流程,如圖3.4所示:

開始容量判斷適合進入算法選擇過大讀入載體圖片并得到像素矩陣開啟密鑰文本將其轉(zhuǎn)化為為二進制流終止報錯

圖3.4將文本讀取并判斷容量

當(dāng)進入算法選擇的流程后,我們接著所要做的操作是對S2,S1進行判斷,假使s2為1,則將要進行隔段嵌入;但假使s3為1,那么接下來就會進入二叉樹嵌入過程。當(dāng)嵌入完成后,會對嵌入后的載體圖片進行顯示。這個過程對應(yīng)的流程圖如圖3.5所示:

第10頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

開始進入算法選擇的判定s2=1s2=1還是s3=1s3=1隔段嵌入算法二叉樹嵌入算法顯示嵌入后的結(jié)果終止圖3.5對相關(guān)內(nèi)容進行相應(yīng)算法選擇并嵌入

核心代碼如下:

讀取圖片矩陣,通過c1,c2,c3,c4進行相應(yīng)載體圖片的選擇:ifc1==1

cover=imread('D:\\tupian\\tu6.bmp');elseifc2==1

cover=imread('D:\\tupian\\tu7.bmp');elseifc3==1

cover=imread('D:\\tupian\\tu8.bmp');elseifc4==1

cover=imread('D:\\tupian\\tu9.bmp');end

ste_cover=cover;

ste_cover=double(ste_cover);

第11頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

進行文本的提取,通過c5,c6,c7進行:ifc5==1

f_id=fopen('D:\\tupian\\file.txt','r');elseifc6==1

f_id=fopen('D:\\tupian\\file1.txt','r');elseifc7==1

f_id=fopen('D:\\tupian\\file2.txt','r');end

[msg,len_total]=fread(f_id,'ubit1');隔段嵌入代碼:

h1=waitbar(0,'正在嵌入,請稍候?。?!');p=1;forf2=1:nforf1=1:m

y=mod(f1,8);//用來計算嵌入的位置ify==0;

ste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(p,1);//當(dāng)y為0時,進行嵌入運算ifp==len_total

break;//若嵌入數(shù)量已經(jīng)等于準(zhǔn)備嵌入的,中止嵌入,退出循環(huán)endp=p+1;

waitbar(p/len_total,h1);//用于計算嵌入的進度endend

ifp==len_total

break;//若嵌入數(shù)量已經(jīng)等于準(zhǔn)備嵌入的,中止嵌入,退出循環(huán)endend

第12頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

close(h1);//嵌入完成關(guān)閉進度條二叉樹嵌入代碼:

h1=waitbar(0,'正在嵌入,請稍候?。?!');p=1;J=1;Q=0;index=0;

count=5;//根結(jié)點初始位置forf2=1:nforf1=1:m

//當(dāng)count==5時進行如下嵌入操作

ste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(p,1);//這一步僅在判斷根節(jié)點時進行

count=2*count;//找到左子樹節(jié)點的位置f1=count;//移動矩正列的位置J=2*J;//進入二叉樹的下一層

forf3=1:J//以該層節(jié)點數(shù)構(gòu)建第三層循環(huán)p=p+1;

waitbar(p/len_total,h1);//用來計算嵌入進度ifp>=len_total

break;若嵌入數(shù)量已經(jīng)等于準(zhǔn)備嵌入的,中止嵌入,退出循環(huán)endiff1>m

R=f1;//記錄這是f1的值

index=fix(f1/m);//通過取整運算得到這時真正應(yīng)在的行數(shù)f2=index;//將其賦給f2iff2>n

break;//若超出則終止運算end

第13頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

f1=f1-f2*m;//計算出f1在該行的具體位置iff1==0

ste_cover(m,f2)=ste_cover(m,f2)-mod(ste_cover(m,f2),2)+msg(p,1);f1=R+1;//當(dāng)恰好為0時,表示在上一行最終一個位置,進行運算else

f2=f2+1;//否則的話在下一行,f2加1并進行嵌入

ste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(p,1);f2=f2-1;//還原f2;

f1=R+1;//讓f1加1嵌入它旁邊的子結(jié)點Q=1;endelse

ste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(p,1);f1=f1+1;iff1>m

Q=1;//用來關(guān)注f1是否超出m,超出Q置1endendendifQ==1

f1=f1-f2*m;//計算出f1的位置f2=f2+1;//計算出f2的位置;endend

ifp>=len_total//超出嵌入數(shù)量后,終止循環(huán)break;

close(h1);//關(guān)閉進度條3.6圖片作為批量數(shù)據(jù)的嵌入

圖片作為將要嵌入的密鑰信息時,所要做的是下面一系列步驟。首先將圖片選

第14頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

中,即讓c8為1。然后進行圖片密鑰的嵌入時,同樣需要讀取載體圖片的像素矩正,同時也要得到密鑰圖片的像素矩正,在得到相應(yīng)的矩正后,通過二進制轉(zhuǎn)化,將相應(yīng)的密鑰圖片的像素矩正中的數(shù)值轉(zhuǎn)化為與之對應(yīng)的二進制數(shù)值,接著將得到的數(shù)值存放于事先定義好的文本文檔“zhancun〞中,而此文檔的真正目的也正是用于存放圖片對應(yīng)的二進制流。然后將文本中的二進制流讀出,并得到其總?cè)萘?,與載體圖片的像素矩正的像素點總數(shù)比較。若容量不適合則更換載體圖片,只有當(dāng)容量適合時才進行嵌入,選擇相應(yīng)的嵌入算法,在設(shè)定的像素點處進行嵌入。在嵌入完成后,同樣也將原圖片與嵌入后的圖片進行顯示。該過程的流程圖如圖3.6和3.7所示:

開始讀入載體圖片并得到像素矩陣讀入密鑰圖片并得到其像素矩陣將密鑰圖片的像素矩正轉(zhuǎn)化為二進制流存入文本文檔zhancun中開啟zhancun文本提取二進制流判斷容量是否過大是否進入算法選擇的判定提醒并報錯終止

第15頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

圖3.6將圖片讀入轉(zhuǎn)化為二進制流并判定容量

開始算法選擇的判定s2=1s2=1還是s3=1s3=1隔段嵌入算法二叉樹嵌入算法顯示嵌入后的結(jié)果終止

圖3.7顯示嵌入算法的選擇流程

選擇嵌入的載體圖片:ifc1==1

cover=imread('D:\\tupian\\tu11.bmp');elseifc2==1

cover=imread('D:\\tupian\\tu11.1.bmp');elseifc3==1

cover=imread('D:\\tupian\\tu11.2.bmp');elseifc4==1

cover=imread('D:\\tupian\\tu11.3.bmp');end

ste_cover=cover;

ste_cover=double(ste_cover);

第16頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

選擇嵌入的密鑰圖片:ifc5==1

T=imread('D:\\tupian\\tu10.bmp');elseifc6==1

T=imread('D:\\tupian\\tu10.1.bmp');elseifc7==1

T=imread('D:\\tupian\\tu10.2.bmp');endT_tu=T;

T_tu=double(T);

[m,n]=size(ste_cover);//讀取圖片矩正的尺寸,并記憶[h,k]=size(T_tu);//讀取密鑰圖片的尺寸并做記憶frr=fopen('D:\\tupian\\zhancun.txt','W+');

fprintf(frr,'%s','');//找到了準(zhǔn)備存密鑰圖片的文本,并準(zhǔn)備進行寫入fori=1:hforj=1:k

bind=dec2bin(T_tu(i,j),8);//將相應(yīng)像素矩正數(shù)值轉(zhuǎn)化為相應(yīng)的二進制frr=fopen('D:\\tupian\\zhancun.txt','a+');//進行文本的追加fprintf(frr,'%s',bind);//寫入文本中fclose(frr);//關(guān)閉文本endend

f_id=fopen('D:\\tupian\\zhancun.txt','r');[msg,len_total]=fread(f_id,'ubit1');

然后將文本中的二進制流依照相應(yīng)的兩種算法進行嵌入。3.7嵌入后的圖片與原圖片的直方圖對比

在嵌入階段完成后,為了能夠直觀的看出原圖片和嵌入以后的圖片的不同,引入了相應(yīng)的直方圖分析,首先讀取原圖片,然后讀取嵌入密鑰的圖片,在這些完成后,將圖片顯示,并通過相應(yīng)的功能函數(shù),將其直方圖顯示出來,其過程如圖3.8

第17頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

所示:

開始選擇原載體圖片選擇嵌入密鑰后的圖片顯示出原圖片及其直方圖顯示出嵌有密鑰的圖片和直方圖終止圖3.8顯示讀取直方圖的流程

具體代碼如下:ifc1==1

I=imread('D:\\tupian\\tu6.bmp');elseifc2==1

I=imread('D:\\tupian\\tu7.bmp');elseifc3==1

I=imread('D:\\tupian\\tu8.bmp');elseifc4==1

I=imread('D:\\tupian\\tu9.bmp');end

subplot(221),imshow(I);title('原圖片!');I=rgb2gray(I);

I=histeq(I);//顯示原圖的直方圖ifc1==1

第18頁

共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

H=imread('D:\\tupian\\d.bmp');elseifc2==1

H=imread('D:\\tupian\\h.bmp');elseifc3==1

H=imread('D:\\tupian\\e.bmp');elseifc4==1

H=imread('D:\\tupian\\f.bmp');end

subplot(222),imshow(H);title('嵌入文本密鑰后的圖片');H=rgb2gray(H);

H=histeq(H);//顯示嵌入后的圖片的直方圖

subplot(223),imhist(I);title('原圖片對應(yīng)的直方圖!');

subplot(224),imhist(H);title('嵌入文本密鑰后對應(yīng)的直方圖!');3.8文本的提取

對于文本的提取,當(dāng)c9為1時,說明將要提取的是文本。然后依據(jù)嵌入時的選擇,選擇好提取的算法。依據(jù)相應(yīng)的算法找到真正應(yīng)當(dāng)提取的像素點。然后通過與像素點對應(yīng)的數(shù)值進行與1的與運算,得到嵌入的二進制流,然后將其轉(zhuǎn)化成為相應(yīng)的文本內(nèi)容,寫入存放密鑰的文本中。具體的流程如圖3.9所示:

開始提取相關(guān)文本信息選擇嵌有密鑰的圖片進行提取算法選擇存放于文本尋覓嵌入密鑰的像素終止

圖3.9顯示提取文本的流程

具體提取代碼如下:

讀取圖片矩陣,通過c1,c2,c3,c4進行提取圖片的選擇:

第19頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

ifc1==1

ste_cover=imread('D:\\tupian\\d.bmp');elseifc2==1

ste_cover=imread('D:\\tupian\\h.bmp');elseifc3==1

ste_cover=imread('D:\\tupian\\e.bmp');elseifc4==1

ste_cover=imread('D:\\tupian\\f.bmp');end

ste_cover=double(ste_cover(:,:,1));[m,n]=size(ste_cover);

通過c5,c6,c7進行密鑰提取的目的文本選擇:ifc5==1

frr=fopen('D:\\tupian\\goalfile1.txt','w');elseifc6==1

frr=fopen('D:\\tupian\\goalfile2.txt','w');elseifc7==1

frr=fopen('D:\\tupian\\goalfile3.txt','w');end隔段算法提取p=1;

h=waitbar(0,'正在提取請稍等?。?!');forf2=1:nforf1=1:m

y=mod(f1,8)//尋覓到提取的位置ify==0

ifbitand(ste_cover(f1,f2),1)==1

fwrite(frr,1,'ubit1');//找到位置后,判斷并進行提取,存于文本result(p,1)=1;

第20頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

else

fwrite(frr,0,'ubit1');result(p,1)=0;end

ifp==len_total;

break;//若提取完畢則終止循環(huán)endp=p+1;

waitbar(p/len_total,h);//計算提取進度endend

ifp==len_total;break;endendclose(h);二叉樹算法提?。?/p>

在經(jīng)過了二叉樹算法的嵌入后,我們已經(jīng)基本了解了通過二叉樹進行嵌入的具體過程,在二叉樹的提取中,我們只需要依照相應(yīng)的原理,計算出提取像素點的具體位置,然后通過相應(yīng)的運算,判斷出在該像素點嵌入的二進制是0還是1,然后將其寫入文本中。在二叉樹尋覓提取點的過程中,我們設(shè)置J來控制二叉樹,在循環(huán)的第三層,通過相關(guān)運算變化來J,然后由J控制二叉樹的每層結(jié)點的嵌入,并且在提取過程中設(shè)置p,通過它來計算出提取的進度,當(dāng)提取完成后,關(guān)閉進度條,并關(guān)閉相應(yīng)的文本。3.9圖片的提取

若選擇的為圖片提取,即c8為1時,同樣先對算法進行選擇,若選擇的算法不是當(dāng)時嵌入密鑰時的算法,則會在將來提取出一批亂碼,不是正確二進制流。當(dāng)正確從載體圖片中提取出相應(yīng)的二進制流后,存于相應(yīng)的文本中,在利用的得到二進制流,求出原圖片各像素點的像素值,重建像素矩陣,然后通過像素矩陣顯示出

第21頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

相應(yīng)的密鑰圖片,這個過程的具體流程圖如圖3.10所示:

開始提取出嵌入的二進制流存于文讀取嵌有密鑰的圖片矩陣將二進制流轉(zhuǎn)化為像素矩正并進行相應(yīng)的提取算法選擇終止尋覓嵌入密鑰的像素點圖3.10顯示提取圖片的流程

利用3.7小節(jié)的方法將密鑰圖片的二進制流提取出放于文本后,接著將其通過計算轉(zhuǎn)化為圖片的像素矩陣,具體代碼如下:fori=1:hforj=1:(8*k)

sec_m=str2num(ch(index,1));//將二進制流讀出一位并將其轉(zhuǎn)化為數(shù)字型;ifcount==1

sec_m1=sec_m*128;//若讀出的是第一位,將其乘以128elseifcount==2

sec_m2=sec_m*64;//若讀出的是其次位,將其乘以64elseifcount==3

sec_m3=sec_m*32;//若讀出的是第三位,將其乘以32elseifcount==4;

sec_m4=sec_m*16;//若讀出的是第四位,將其乘以16elseifcount==5

sec_m5=sec_m*8;//若讀出的是第五位,將其乘以8elseifcount==6

sec_m6=sec_m*4;//若讀出的是第六位,將其乘以4elseifcount==7

sec_m7=sec_m*2;//若讀出的是第七位,將其乘以2elseifcount==8

第22頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

sec_m8=sec_m*1;//若讀出的是第八位,將其乘以1end

count=count+1;//用來限制加的次數(shù),限制為八次index=index+1;//用來表示讀取二進制的位置ifcount==9

sec_m=sec_m1+sec_m2+sec_m3+sec_m4+sec_m5+sec_m6+sec_m7+sec_m8;result(i,flag)=sec_m;//夠八次后將其轉(zhuǎn)化為像素矩陣的十進制形式flag=flag+1;//用來控制列,記憶像素矩陣列的位置ifflag>k

flag=1;//超出k后自動回歸為1;end

count=1;//超出8后回歸為1;endendend

通過上面一系列算法,最終將文本中的二進制流成功讀取,并轉(zhuǎn)化為相應(yīng)的十進制形式,存于像素矩陣中。

第23頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

4終止語

4.1試驗的數(shù)據(jù)流程

1)顯示嵌入的載體圖片,如圖4.1所示:

圖4.1顯示嵌入的載體圖片

2)顯示主界面,在主界面中,可以通過復(fù)選框選擇相關(guān)按鍵,實現(xiàn)相應(yīng)的功能,如下圖4.2所示:

圖4.2主界面

第24頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

3)以嵌入文本為例,將原文本file中的內(nèi)容嵌入圖1中并顯示,如下圖4.3所示:

圖4.3嵌入文本file中的內(nèi)容

4)顯示文本file中內(nèi)容,如圖4.4所示:

圖4.4顯示文本file中的內(nèi)容

第25頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

5)將文本嵌入后,顯示出它們的直方圖,如4.5所示:

圖4.5顯示直方圖

6)接著提取嵌入圖片的文本信息,顯示提取內(nèi)容,如圖4.6所示:

圖4.6顯示提取的文本內(nèi)容

第26頁共29頁

中北大學(xué)2023屆畢業(yè)設(shè)計說明書

4.2設(shè)計結(jié)論

雖然經(jīng)過三個月的學(xué)習(xí)和設(shè)計,最終我做出了一個簡單的批量信息隱蔽系統(tǒng)。但是其中還存在好多的不足,我明白自己對這個領(lǐng)域的理解還很淺薄,需要自己不斷地深入學(xué)習(xí)和實踐。當(dāng)我每次遇到問題時,總是努力去解決問題,從中鍛煉自己編程的調(diào)試能力。由于批量信息隱蔽的特點,必定會在將來得到廣泛應(yīng)用。對于批量信息隱蔽,我會在以后繼續(xù)堅持學(xué)習(xí),對該課題做進一步研究,不斷地完善和改進,設(shè)計出更好的批量信息隱蔽軟件。4.3心得體會

當(dāng)辯論鄰近,自己才突然感覺到三個月的畢業(yè)設(shè)計竟然這么快就要終止?;厥滓呀?jīng)逝去的三月,心中有種莫名的感動??赡苁菍⒁x別,心中有些許傷感,想著就要與悉心指導(dǎo)我的各位老師、與我的母校和與我一起走過風(fēng)風(fēng)雨雨的同學(xué)道別,無盡的不舍充塞在我的心中。而畢業(yè)設(shè)計的這三個月也是我感想最深的,其中有苦也有甜,但是最終確實是讓我得到了好多。想法也有了很大的改變,最初只覺得畢業(yè)設(shè)計就是對以前的知識進行總結(jié),但是當(dāng)畢業(yè)設(shè)計真正開始后,我發(fā)現(xiàn)自己真正的想錯了。畢業(yè)設(shè)計不僅是對以前知識的總結(jié),更要在此基礎(chǔ)上進行對畢業(yè)設(shè)計相關(guān)內(nèi)容進行學(xué)習(xí),從而對自己能力進行進一步提升,以下是我在畢業(yè)設(shè)計期間一些簡單的總結(jié)。

首先接到畢業(yè)設(shè)計任務(wù)后,對自己題目進行相關(guān)了解。為開題報告做相應(yīng)的準(zhǔn)備,3月份的開題報告也是至關(guān)重要的,通過對開題報告的寫作,可以讓自己對畢業(yè)設(shè)計有一個整體的概念,同時能對論文書寫有一定的鍛煉。

接著當(dāng)開題報告上交之后,就要進行相關(guān)資料的查閱,而圖書館,書店這些傳統(tǒng)的方式自然必不可少,除此之外,我們還要在網(wǎng)上,電子閱覽室等進行查閱。將所需知識一一記錄下來。

最終就是對設(shè)計的程序進行調(diào)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論