【圖像隱藏】基于LSB算法的數(shù)字水印嵌入攻擊提取附Matlab代碼
?作者簡(jiǎn)介:熱愛(ài)科研的Matlab仿真開(kāi)發(fā)者,修心和技術(shù)同步精進(jìn),
代碼獲取、論文復(fù)現(xiàn)及科研仿真合作可私信。
??個(gè)人主頁(yè):Matlab科研工作室
??個(gè)人信條:格物致知。
更多Matlab完整代碼及仿真定制內(nèi)容點(diǎn)擊??
智能優(yōu)化算法?? ? ??神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)?? ? ??雷達(dá)通信?? ? ?無(wú)線傳感器?? ? ? ?電力系統(tǒng)
信號(hào)處理?? ? ? ? ? ? ?圖像處理?? ? ? ? ? ? ??路徑規(guī)劃?? ? ??元胞自動(dòng)機(jī)?? ? ? ?無(wú)人機(jī)
?? 內(nèi)容介紹
圖像隱藏一直是數(shù)字水印領(lǐng)域的研究熱點(diǎn)之一。數(shù)字水印技術(shù)可以在不影響原始圖像質(zhì)量的情況下,將一些隱秘信息嵌入到圖像中,以實(shí)現(xiàn)身份認(rèn)證、版權(quán)保護(hù)、內(nèi)容完整性驗(yàn)證等功能。LSB(Least Significant Bit)算法是一種常用的數(shù)字水印嵌入技術(shù),它通過(guò)修改圖像像素的最低有效位來(lái)嵌入水印信息。
然而,正是因?yàn)長(zhǎng)SB算法的普遍應(yīng)用,使得圖像隱藏系統(tǒng)更容易受到攻擊。攻擊者可以通過(guò)一些技術(shù)手段來(lái)提取嵌入在圖像中的數(shù)字水印,從而破壞數(shù)字水印的安全性。因此,對(duì)LSB算法的攻擊提取技術(shù)進(jìn)行研究和分析具有重要意義。
在進(jìn)行LSB算法的攻擊提取研究時(shí),首先需要了解LSB算法的原理和實(shí)現(xiàn)方式。LSB算法是通過(guò)將水印信息嵌入到圖像像素的最低有效位中,來(lái)實(shí)現(xiàn)對(duì)圖像的隱藏。攻擊者可以通過(guò)分析圖像的像素值,提取出嵌入的水印信息。常見(jiàn)的攻擊提取技術(shù)包括統(tǒng)計(jì)分析、差異分析、噪聲干擾等方法。
統(tǒng)計(jì)分析是一種常見(jiàn)的LSB算法攻擊提取技術(shù)。攻擊者可以通過(guò)對(duì)圖像像素值的統(tǒng)計(jì)分布進(jìn)行分析,從而提取出嵌入的水印信息。差異分析則是通過(guò)比較原始圖像和水印圖像的差異來(lái)提取水印信息,這種方法對(duì)嵌入水印的影響較小,但需要大量的計(jì)算資源。噪聲干擾是通過(guò)向圖像中添加噪聲來(lái)破壞水印信息,從而提取出水印信息。
除了攻擊提取技術(shù),LSB算法的安全性還受到一些其他因素的影響。例如,圖像的壓縮、格式轉(zhuǎn)換、旋轉(zhuǎn)等操作都可能導(dǎo)致嵌入的水印信息丟失或損壞,從而影響數(shù)字水印的可靠性。因此,在設(shè)計(jì)圖像隱藏系統(tǒng)時(shí),需要綜合考慮這些因素,以提高數(shù)字水印的安全性和穩(wěn)定性。
總的來(lái)說(shuō),LSB算法是一種常用的數(shù)字水印嵌入技術(shù),但也容易受到攻擊。攻擊者可以通過(guò)統(tǒng)計(jì)分析、差異分析、噪聲干擾等技術(shù)來(lái)提取嵌入的水印信息,從而破壞數(shù)字水印的安全性。因此,對(duì)LSB算法的攻擊提取技術(shù)進(jìn)行研究和分析具有重要意義,可以幫助提高數(shù)字水印系統(tǒng)的安全性和穩(wěn)定性。希望未來(lái)能夠有更多的研究關(guān)注于數(shù)字水印領(lǐng)域,為數(shù)字水印技術(shù)的發(fā)展和應(yīng)用提供更多的支持和保障。
?? 部分代碼
%讀取圖像
clear all;
clc;
file_name='Lena3.jpg';
cover_object=imread(file_name);
Res =isgray(cover_object); % 判斷是否為灰度圖,若為0則不是灰度圖
if Res == 0
?cover_object= rgb2gray(cover_object);
end
%讀入信息
file_name1='4.jpg';
message=imread(file_name1);
Res =isgray(message); % 判斷是否為灰度圖,若為0則不是灰度圖
if Res == 0
?message= rgb2gray(message);
end
figure
subplot(2,2,1);
imshow(cover_object);
title('載體圖像');
hold on;
subplot(2,2,2);
imshow(message);
title('信息圖像');
hold on;
LSB_bit=4;
m1=size(message,1);
n1=size(message,2);
[cover_object1,message2]=LSB_encode(cover_object,message,LSB_bit);
subplot(2,2,3);
imshow(uint8(cover_object1));
title('嵌入圖像(LSB)');
hold on;
[Img1]=LSB_decode(m1,n1,cover_object1,LSB_bit);
Img1=uint8(Img1);
subplot(2,2,4);
imshow(Img1);
title('提取信息');
hold on;
PSNR=psnr(cover_object1, cover_object);
%1:63.6979,0.9567,0.3442;2:57.5525,0.7440,0.3485;3:51.5839,0.4897,0.3366;4:45.8109,0.2716,0.3306;
% ? j=imnoise(uint8(cover_object1),'gaussian',0,0.5^2/255^2);
? ?j=imnoise(uint8(cover_object1),'salt & pepper',0.01);
figure
subplot(2,2,1);
imshow(uint8(cover_object));
title('載體圖像');
hold on;
subplot(2,2,2);
imshow(uint8(message));
title('信息圖像');
hold on;
subplot(2,2,3);
imshow(j);
title('嵌入圖像(LSB,加高斯噪聲/椒鹽)');
hold on;
j=double(j);
[Img1]=LSB_decode(m1,n1,j,LSB_bit)
Img1=uint8(Img1);
subplot(2,2,4);
imshow(Img1);
title('提取信息');
hold on; ?
Img1=double(Img1);
message=double(message);
error=length(find((Img1-message)~=0))/(size(message,1)*size(message,2));
?? 運(yùn)行結(jié)果


?? 參考文獻(xiàn)
[1] 王東東,王福明.基于LSB數(shù)字水印算法的研究與實(shí)現(xiàn)[J].山西電子技術(shù), 2014(5):2.DOI:10.3969/j.issn.1674-4578.2014.05.033.
[2] 黃仿元.基于LSB的數(shù)字水印算法及MATLAB實(shí)現(xiàn)[J].現(xiàn)代機(jī)械, 2008(2):3.DOI:10.3969/j.issn.1002-6886.2008.02.025.