LSB信息隱藏試驗(yàn)報(bào)告_第1頁(yè)
LSB信息隱藏試驗(yàn)報(bào)告_第2頁(yè)
LSB信息隱藏試驗(yàn)報(bào)告_第3頁(yè)
LSB信息隱藏試驗(yàn)報(bào)告_第4頁(yè)
LSB信息隱藏試驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Centr中南大,攀al South University信息隱藏實(shí)驗(yàn)報(bào)告學(xué)院:信息科學(xué)與工程學(xué)院班級(jí):信息安全1201學(xué)號(hào):0909121724姓名:呂秋言 時(shí)間:2018 年6月實(shí)驗(yàn)一:基于圖像的LSB信息隱藏一、 實(shí)驗(yàn)?zāi)康脑搶?shí)驗(yàn)為驗(yàn)證性實(shí)驗(yàn)。目的是通過(guò)實(shí)驗(yàn)使學(xué)生掌握經(jīng)典信息隱藏算法,在Matlab環(huán)境下,編寫基于圖像的LSB信息隱藏算法程序。用Matlab函數(shù)實(shí)現(xiàn)LSB信息隱藏及提取,并進(jìn)行分析。b5E2RGbCAP二、實(shí)驗(yàn)要求1、實(shí)驗(yàn)前要做好充分準(zhǔn)備,包括:復(fù)習(xí)實(shí)驗(yàn)所涉及的知識(shí)點(diǎn),掌握Matlab編程語(yǔ)言和調(diào)試環(huán)境。2、實(shí)驗(yàn)時(shí)注意記錄實(shí)驗(yàn)過(guò)程中產(chǎn)生的數(shù)據(jù)、出現(xiàn)的問(wèn)題及解決問(wèn)題的方法。3

2、、理論聯(lián)系實(shí)際,認(rèn)真分析實(shí)驗(yàn)結(jié)果,回答思考題。4、實(shí)驗(yàn)后完成實(shí)驗(yàn)報(bào)告,并附相關(guān)截圖。三、實(shí)驗(yàn)環(huán)境計(jì)算機(jī) <安裝Visual C+ 6.0 和Matlab 6.5 以上版本)四、實(shí)驗(yàn)原理隱秘算法核心是將我們選取的像素點(diǎn)的最不重要位依次替換成 秘密信息,以達(dá)到信息隱秘的目的。嵌入過(guò)程包括選擇一個(gè)圖像載體 像素點(diǎn)的子集(j1, ,jl(m>,然后在子集上執(zhí)行替換操作像素 cji->mi,即把cji的LSB與秘密信息mi進(jìn)行交換(mi可以是1或 0>。一個(gè)替換系統(tǒng)也可以修改載體圖像像素點(diǎn)的多個(gè)比特,例如,在一個(gè)載體元素的兩個(gè)最低比特位隱藏兩比特、三比特信息,可以使得信息嵌入量大

3、大增加但同時(shí)將破壞載體圖像的質(zhì)量。在提取過(guò)程中 , 找出被選擇載體圖像的像素序列,將LSB(最不重要位 >排列起來(lái)重構(gòu) 秘密信息,算法描述如下:p1EanqFDPw嵌入過(guò)程:for(i=1 。1<=像素序列個(gè)數(shù)。i+> si cifor(i=1 。1<=秘密消息長(zhǎng)度。i+>/將選取的像素點(diǎn)的最不重要位依次替換成秘密信息sji cji ->mi提取過(guò)程:for(i=1 。1<=秘密消息長(zhǎng)度。i+> i -ji 序選取 mi-LSB(cji>)五、 實(shí)驗(yàn)內(nèi)容與步驟基本演示環(huán)境:matlabLSB,Least Significant Bits ,

4、最低有效位,將圖像加密處 理。這次將通過(guò)位平面的切割之后,嵌入一張隱私圖片,一些 人的隱私交流很有可能通過(guò)這個(gè),比如美國(guó)的某某人,當(dāng)然這個(gè)只 是最簡(jiǎn)單的。DXDiTa9E3d位平面切割是將數(shù)字圖像分解為位平面,比如上一篇文 章講到的圖片的8位的數(shù)據(jù)類型,可以讓我們每一位所起的作用。 一邊學(xué)的時(shí)候也帶著疑問(wèn),為什么用 bitget呢。RTCrpUDGiT 經(jīng)過(guò)實(shí)驗(yàn)也證明自己的想法是正確的,首先 bitget(X,Y>是拿到X二進(jìn)制的值的Y位。plain view plaincopy c1. >> bitget(1,1>2.3. ans =4.5. 17. >>

5、 bitget(1,2>8.9. ans =10.11. 012.13. >>那么我們可以想想,一幅8位的數(shù)字圖像 <無(wú)符號(hào)類型),最高是 11111111J進(jìn)制),即2八8 - 1,255,用大腿一想,當(dāng)然是第八位 起決定性作用,假如有一百萬(wàn)零一這個(gè)數(shù)字,少了最前面的一個(gè)一和最后面的一個(gè)一可是兩碼事。5PCzVD7HxA舉個(gè)例子,我切除圖像的一部分:plain view plaincopy c.1. >> q = f(122:130,122:130> 。2. >> imwrite(q,'verysmall.jpg'>

6、 。3. >> f = imread('verysmall.jpg'>4.5. f =6.7. 1551541491411341291291301278.1711691661611571541549.10.11.12.13.14.15.541481731711701701711711696816316516416416717017217169165166166167169171172172711681741751751741701691697017517918218117416415916064172184186185174160152155601611821

7、8518016715414914848149每個(gè)像素點(diǎn)的值這么大。接下來(lái):plain view plaincopy1. >> tbitget(f,8>3. t =5.1111111106.1111111117.1111111118.1111111119.11111111110.11111111111.11111111112.11111111113.11111111114.最高位是決定性作用的一層。所以,要嵌入圖像,就要嵌入到第一層,影響最小。plain view plaincopy c1. >>f=imread('lina.jpg'>。2.

8、>>g=bitget(f,8> 。這樣g雖然是第八層的圖像,但是都是二進(jìn)制最高位的值,非 0即1,而在為灰度圖像看來(lái),都是黑色。需要轉(zhuǎn)換成二值圖像。jLBHrnAILgplain view plaincopy C1. t = logical(g> 。接下來(lái),我把自己的話嵌入到照片中plain view plaincopy c.2. >> b = imread('love.jpg'>3. >> c = im2bw(b>。這次是反過(guò)來(lái),我們是要把一幅8位數(shù)據(jù)類型的圖像嵌入到位圖中,那首先要把8位的數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制,用上面的

9、im2bw。xHAQX74J0X先看看嵌入到影響最大的一層的效果如何:plain view plaincopy1. >> w = bitset(a,8,c>2. >> imshow(w>接下來(lái),嵌入到第一層:plain view plaincopy c1. >> w = bitset(a,1,c>2. >> imshow(w>幾乎是看不到什么的,當(dāng)你想看看你嵌入什么圖像時(shí),只需要把被替換的第一層取出。plain view plaincopy 亡1. >> y = bitget(w,1> 。2. >&

10、gt; imshow(logical(y>>1、隨機(jī)選取圖像載體像素,實(shí)現(xiàn)隱秘消息的嵌入與提取<1)隱秘消息的嵌入版件名:randlsbhide.m網(wǎng)數(shù)功能:本函數(shù)將完成隨機(jī)選擇LSB的信息隱秘,載體選用灰度BMP®glenna.bmp' , messa喻入格式舉 例:ste_cover,len_total=randlsbhide(ge.txt ' ,' scover.bmp ' ,20 01>LDAYtRyKfE%參數(shù)說(shuō)明:%input是信息隱蔽載體圖像%file是秘密消息文件%output是信息隱秘后的生成圖像%key是隨機(jī)

11、間隔函數(shù)的密鑰functionste_cover,len_total=randlsbhide(input,file,output,key>Zzz6ZB2Ltk獻(xiàn)入圖像矩陣cover=imread(input> 。ste_cover=cover。ste_cover=double(ste_cover> 。%各文本文件轉(zhuǎn)換為二進(jìn)制序列f_id= fopen(file, ' r' >。msg,len_total=fread(f_id, ' ubit1 ' >。喏斷嵌入消息量是否過(guò)大m,n=size(ste_cover> 。If len

12、_total>m*nerror('嵌入消息量過(guò)大,請(qǐng)更換圖像>。end%昨?yàn)橄⑶度胛粩?shù)計(jì)數(shù)p=1。須用隨機(jī)間隔函數(shù)選取像素點(diǎn)row,col=randinterval(ste_cover,len_total,key>。流LSB隱秘消息for i=1:len_totalste_cover(row(i>,col(i>>=ste_cover(row(i>,col(i>>-mod(ste_cover(row(i>,col(i>>,2>+msg(p,1> 。 dvzfvkwMI1if p=len_totalbre

13、ak。endp=p+1。endste_cover=uint8(ste_cover> 。imwrite(ste_cover,output> 。煩示實(shí)驗(yàn)結(jié)果subplot(1,2,1> 。 imshow(cover>。title('原始圖像>。subplot(1,2,2> 。imshow(output> 。 title('隱藏信息的圖像<2)編寫函數(shù)比較兩幅圖像區(qū)別煩件名:compare.m加數(shù)功能:本函數(shù)完成顯示隱秘前后兩幅圖像的區(qū)別喻入格式舉例:F=compare(' blenna.bmp' , ' sco

14、ver.bmp' >%參數(shù)說(shuō)明:%original是原始載體圖像%hided是隱秘后的圖像%FM差值矩陣functionF=compare(original,hided>取原始載體圖像矩陣W=imread(original> 。W=double(W>/255獻(xiàn)取隱秘后圖像矩陣E=imread(hided>。E=double(E>/255。%各兩圖像關(guān)!陣相減,顯示效果旭意,MATLAB矩陣相減只支持double型imshow(mat2gray(F> ><3)隱秘消息的提取煩件名:randlsbget.m%0數(shù)功能:本函數(shù)將完成提取隱

15、秘于LSB上的秘密消息喻入格式舉例:result=randlsbget( ' scover.jpg ' ,56, ' secret.txt,2001>rqyn14ZNXI%參數(shù)說(shuō)明:%output是信息隱秘后的圖像%len_total是秘密消息的長(zhǎng)度%goalfile是提取出的秘密消息文件%key是隨機(jī)間隔函數(shù)的密鑰%result是提取的消息functionresult=randlsbget(output,len_total,goalfile,key>EmxvxOtOcoste_cover=imread(output> 。ste_cover=doubl

16、e(ste_cover> 。喏斷嵌入消息量是否過(guò)大m,n=size(ste_cover> 。frr= fopen(goalfile, ' a' >。%p乍為消息嵌入位數(shù)計(jì)數(shù)器,將消息序列寫回文本文件p=1。須用隨機(jī)間隔函數(shù)選取像素點(diǎn)row,col=randinterval(ste_cover,len_total,key>。for i=1:len_totalifbitand(ste_cover(row(i>,col(i>>,1>=1fwrite(frr,1, ' bit1 ' >。result(p,1>=

17、1 。elsefwrite(frr,0, ' bit1 ' >。result(p,1>=0endif p=len_totalbreak。endp=p+1。endfclose(frr> 。2、順序選取圖像載體像素,實(shí)現(xiàn)隱秘消息的嵌入與提取<1)隱秘消息的嵌入版件名:lsbhide.m網(wǎng)數(shù)功能:本函數(shù)將完成在LSB上的順序信息隱秘,載體選用灰度BMP®喻入格式舉例:ste_cover,len_total=lsbhide( ' glenna.bmp' , message.txt',scover.bmp ' >Si

18、xE2yXPq5%參數(shù)說(shuō)明:%input是信息隱蔽載體圖像,為灰度BMPffl%file是秘密消息文件%output是信息隱秘后生成圖像%ste_cover是信息隱秘后圖像矩陣%len_total是秘密消息的長(zhǎng)度,即容量functionste_cover,len_total=lsbhide(input,file,output>6ewMyirQFL獻(xiàn)入圖像矩陣cover=imread(input> 。ste_cover=cover。ste_cover=double(ste_cover> 。%各文本文件轉(zhuǎn)換為二進(jìn)制序列f_id=fopen(file, ' r' &

19、gt;。msg,len_total=fread(f_id, ' ubit1 ' >。喏斷嵌入消息量是否過(guò)大m,n=size(ste_cover> 。iflen_total>m*nerror('嵌入消息量過(guò)大,請(qǐng)更換圖像>。end%昨?yàn)橄⑶度胛粩?shù)計(jì)數(shù)難成信息隱秘后圖像imwrite(ste_cover,output> 。煩示實(shí)驗(yàn)結(jié)果subplot(1,2,1> 。 imshow(cover>。title('原始圖像>。subplot(1,2,2> 。imshow(output> 。 title('隱藏信息的圖像<2)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論