信息隱藏實驗(LSB隱寫,隨機LSB隱寫,RS隱寫分析)_第1頁
信息隱藏實驗(LSB隱寫,隨機LSB隱寫,RS隱寫分析)_第2頁
信息隱藏實驗(LSB隱寫,隨機LSB隱寫,RS隱寫分析)_第3頁
信息隱藏實驗(LSB隱寫,隨機LSB隱寫,RS隱寫分析)_第4頁
信息隱藏實驗(LSB隱寫,隨機LSB隱寫,RS隱寫分析)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息隱藏實驗二LSB隱寫分析 姓名:周偉康 學號: 班級:- 12 -僅供參考一:實驗要求1、針對自己實現(xiàn)的隱寫算法(嵌入、提取),計算隱蔽載體的PSNR值,通過PSNR值來評估隱寫對圖像質(zhì)量的影響,并與主觀感受做對比。2、實現(xiàn)一種隱寫分析方法,對隱蔽載體進行檢測(卡方、RS)二:實驗步驟1、 編寫隨機選點函數(shù),完善順序和隨機兩種LSB信息嵌入和提取。%隨機間隔選點函數(shù)%row, col = randinterval(test, 60, 1983);function row, col = randinterval(matrix, count, key)m, n = size(matrix);i

2、nterval1 = floor(m * n / count) + 1;interval2 = interval1 - 2;if interval2 = 0 error('載體太小,不能將秘密消息隱藏其內(nèi)!');endrand('seed', key);a = rand(1, count);%initializerow = zeros(1 count);col = zeros(1 count);r = 1; c = 1;row(1,1) = r;col(1,1) = c;for i = 2 : count if a(i) >= 0.5 c = c + in

3、terval1; else c = c + interval2; end if c > n r = r + 1; if r > m error('載體太小,不能將秘密消息隱藏其內(nèi)!'); end c = mod(c, n); if c=0 c = 1; end endrow(1, i) = r;col(1, i) = c;end選取8*8的矩陣測試2、 對比原始圖像和隱藏信息后圖像,計算隱蔽載體的均方差(MSE)進而計算峰值信噪比(PSNR),評估隱寫對圖像質(zhì)量的影響。 %輸入格式: F = compare('D:課件hidepic2.jpg',&#

4、39;scover.jpg');function F = compare(original, hided)W = imread(original);E = imread(hided);if any(size(W)=size(E) error('尺寸不同,不能比較');endF = W - E;%F = double(F)/255;imshow(mat2gray(double(F)/255);psnr, mse = qualify(F);function PSNR, MSE = qualify(Delta)%計算MSE和PSNR; MSE = sum(Delta(:) .

5、2)/prod(size(W); PSNR = 10*log10(2552/MSE); endtitle('差異對比 PSNR = ',num2str(psnr);end測試代碼:clc;clear;key = 20112910;originalfile = 'D:¿Î¼þhidepicb.bmp'messagefile = 'D:¿Î¼þhidepicmessage.txt'scoverfile1 = 'D:¿Î¼þh

6、idepicscover1.bmp'scoverfile2 = 'D:¿Î¼þhidepicscover2.bmp'getfile1 = 'D:¿Î¼þhidepicsecret1.txt'getfile2 = 'D:¿Î¼þhidepicsecret2.txt'ste_cover, len_total = LSBhide(originalfile,messagefile,scoverfile1);subplot(233

7、);compare(originalfile,scoverfile1);x = LSBget(scoverfile1, len_total, getfile1);% ffste_cover2, len_total2 = randLSBhide(originalfile, messagefile,scoverfile2,key);subplot(236);compare(originalfile,scoverfile2);x = randLSBget(scoverfile2, len_total2, getfile2,key);隱寫提取結果:(成功)實驗結果1:實驗結果2:結果分析:后者PSNR

8、大說明隨機LSB比順序LSB隱寫安全性更好。3、 對256×256像素,256色的灰度圖像進行RS隱寫分析。RS原理:給定一個圖像塊,Zigzag掃描,排列成一個向量G=(x1,x2xn)圖像的空間相關性定義翻轉(zhuǎn)函數(shù):F1:2i與2i+1的相互變化關系F-1:2i-1與2i的相互變化關系F0:不變關系RS分析步驟:將待檢測圖像分成大小相同的圖像塊計算每個圖像塊的空間相關性對每個圖像塊應用非負翻轉(zhuǎn)(F1, F0)RM=空間相關性增加的圖像塊個數(shù)/圖像塊總個數(shù)SM=空間相關性減小的圖像塊個數(shù)/圖像塊總個數(shù)對每個圖像塊應用非正翻轉(zhuǎn)(F-1, F0)R-M=空間相關性增加的圖像塊個數(shù)/圖像塊

9、總個數(shù)S-M=空間相關性減小的圖像塊個數(shù)/圖像塊總個數(shù)若R-M - S-M >> RM SM,則有LSB隱寫。%RS方法對256*256像素,256色灰度圖進行LSB隱寫檢測。%y = RSanalysis(originalfile);function fff = RSanalysis(input)org = imread(input);org = double(org);org = org(:)'row, len = size(org);rs = zeros(2, 4);fx = zeros(1, 3);m = floor(len / 4);M = randsrc(4,

10、1, 0, 1);%temp = zeros(4, 1);%temp = 27,28,26,25;M = 1 0 1 0;stg = org;for i = 1:2 for j = 1:m temp = stg(j-1)*4+1 : j * 4); %disp(temp); fx(1) = discrimination(temp); fx(2) = discrimination(fpos(temp, M); fx(3) = discrimination(fneg(temp, M); if fx(2) > fx(1) rs(i, 1) = rs(i, 1) + 1; end if fx(2

11、) < fx(1) rs(i, 2) = rs(i, 2) + 1; end if fx(3) > fx(1) rs(i, 3) = rs(i, 3) + 1; end if fx(3) < fx(1) rs(i, 4) = rs(i, 4) + 1; end end if i=1 stg = fpos(stg, ones(len, 1); endendfff = (rs(1,3)-rs(1,4)>(rs(1,1)-rs(1,2);if fff disp('含有隱藏信息');elsedisp('未檢測出隱藏信息。');endrs = rs

12、/m;dpz = rs(1,1) - rs(1,2); dpo = rs(2,1) - rs(2,2);dnz = rs(1,3) - rs(1,4); dno = rs(2,3) - rs(2,4);C = 2*(dpo+dpz),(dnz-dno-dpo-3*dpz),(dpz-dnz);z = roots(C);p = z ./ (z-0.5);fprintf(1,'隱寫率為:%fn', p(2);fprintf(1,'隱寫長:%fn', p(2)*row*len);endfunction v = discrimination(t) v = abs(t(2

13、)-t(1) + abs(t(3)-t(2) + abs(t(4)-t(3);end function r = fpos(t, m) r = t; MM = size(m, 2); for q = 1:MM if m(q) = 1 if mod(t(q),2) = 0 r(q) = r(q) + 1; else r(q) = r(q) - 1; end if r(q) < 0 r(q) = 255; elseif r(q) > 255 r(q) = 0; end end endendfunction r = fneg(t, m) r = t; for q = 1:size(m) i

14、f m(q) = 1 if mod(t(q),2) = 0 r(q) = r(q) - 1; else r(q) = r(q) + 1; end end if r(q) < 0 r(q) = 255; elseif r(q) > 255 r(q) = 0; end endend測試代碼:y = RSanalysis(originalfile);y = RSanalysis(scoverfile1);y = RSanalysis(scoverfile2);實驗數(shù)據(jù)1:(對應Bird圖隱寫)實驗數(shù)據(jù)2:(對應Lena圖隱寫)結果分析:隱寫檢測成功!但是隱寫率和隱寫消息長度估計嚴重有誤,

15、應該是參數(shù)計算有誤。三:總結對Matlab進一步學習后,初步掌握了函數(shù)的編寫方法,將本次和上次實驗代碼修改為函數(shù)封裝調(diào)用的形式,使編碼結構更清晰,編寫修改更方便。代碼后若無;,執(zhí)行時會產(chǎn)生大量中間過程輸出,耽誤運行和查看。故要養(yǎng)成寫分號的習慣,若必要的輸出用disp或加注釋醒目。對不符合大小尺寸的隱蔽體,將無法分析出正確結果。對于幾個字節(jié)的短消息隱藏載體,也無法檢測到隱藏了信息。隱寫率和隱寫信息長估計都沒有調(diào)試成功,對算法還沒有完全理解通透。附:順序LSB和隨機LSB隱寫,提取代碼:LSBhide.m%LSB上的順序信息隱藏,載體選用灰度bmp圖%輸入格式: ste_cover, len_to

16、tal =% LSBhide('D:課件hidepic2.jpg','D:課件hidepicmessage.txt','scover.jpg');function ste_cover, len_total = LSBhide(input, file, output)%讀入圖像矩陣cover = imread(input);ste_cover = cover;%ste_cover = double(ste_cover);%將文本文件轉(zhuǎn)換為二進制序列f_id = fopen(file, 'r');msg, len_total = fr

17、ead(f_id, 'ubit1');fprintf('隱藏消息長度:%dn',len_total);%溢出檢測m, n = size(ste_cover);if len_total > m * n error('嵌入消息量過大,請更換圖像!');endif len_total <= 0 error('請輸入隱藏消息!');endp = 1;for f2 = 1 : n for f1 = 1 : m ste_cover(f1, f2) = ste_cover(f1, f2) - mod(ste_cover(f1, f2

18、), 2) + msg(p, 1); if p = len_total break; end p = p + 1; end if p = len_total break; endend%生成信息隱藏后的圖像imwrite(ste_cover, output);%顯示結果subplot(231);imshow(cover);title('原始圖像');subplot(232);imshow(output);title('LSB隱藏后圖像');LSBget.m%result = LSBget('scover.bmp',length, 'sec

19、ret.txt')function result = LSBget(output, len_total, goalfile)ste_cover = imread(output);%ste_cover = double(ste_cover);m, n = size(ste_cover);frr = fopen(goalfile, 'w');if len_total <= 0 error('請輸入隱藏消息!');endp = 1;result = ones(len_total,1);for f2 = 1 : n for f1 = 1 : m resul

20、t(p, 1) = mod(ste_cover(f1, f2), 2); if p = len_total break; end p = p + 1; end if p = len_total break; endendfwrite(frr,result,'ubit1');fclose(frr);randLSBhide.m%LSB上的隨機信息隱藏,載體選用灰度bmp圖%輸入格式: ste_cover, len_total =% randLSBhide('D:課件hidepic2.jpg','D:課件hidepicmessage.txt','

21、;scover.jpg');function ste_cover, len_total = randLSBhide(input, file, output, key)%讀入圖像矩陣cover = imread(input);ste_cover = cover;%ste_cover = double(ste_cover);%將文本文件轉(zhuǎn)換為二進制序列f_id = fopen(file, 'r');msg, len_total = fread(f_id, 'ubit1');fprintf('隱藏消息長度:%dn',len_total);%溢出

22、檢測m, n = size(ste_cover);if len_total > m * n error('嵌入消息量過大,請更換圖像!');endif len_total <= 0 error('請輸入隱藏消息!');endp = 1;row, col = randinterval(ste_cover, len_total, key);for i = 1 : len_total ROW = row(i); COL = col(i); ste_cover(ROW, COL) = ste_cover(ROW, COL) - mod(ste_cover(ROW, COL), 2) + msg(p, 1); if p = len_total break; end

溫馨提示

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

評論

0/150

提交評論