⑴ LSB演算法的原理是什麼
LSB演算法
首先 將得到的隱藏有秘密信息的十進制像素值轉換為二進制數據;
然後 用二進制秘密信息中的每一比特信息替換與之相對應的載體數據的最低有效位;
最後 將得到的含秘密信息的二進制數據轉換為十進制像素值,從而獲得含秘密信息的圖像。
⑵ 信息隱藏的問題
信息隱藏的好處,信息隱藏是為了降低耦合性,通過降低耦合,可以達到提高可復用性、可維護性這2個目的。
⑶ LSB演算法有何優缺點
你中南信安的吧。加分。我給你發實驗報告,給20分最好了,這是我的新ID,沒財富。
綜上所述,LSB有如下缺點:
1) 嵌入消息較大時,所花時間較長。
2) 只能處理簡單的流格式的文件。
3) 為了滿足水印的不可見性,允許嵌入的水印強度較低,對空域的各種操作較為敏感。
4) 基本的LSB演算法抗JPEG壓縮能力弱。
5) 魯棒性差。
LSB演算法有如下優點:
1) 演算法簡單,易於實現,計算速度也快。
2) 在基礎演算法上能夠很快的進行改進,並在脆弱性水印中應用廣泛。
3) 由於能在最低有效位(一般是最後兩位)進行嵌入,故對於256色(8位)的RGB圖像,在3層圖像中均可插入1/8到1/4的消息,總的來說,容量還是足夠大的。
⑷ 什麼是LSB演算法
LSB(LeastSignificant Bits)演算法:將秘密信息嵌入到載體圖像像素值的最低有效位,也稱最不顯著位,改變這一位置對載體圖像的品質影響最小。
基本原理:
對空域的LSB做替換,用來替換LSB的序列就是需要加入的水印信息、水印的數字摘要或者由水印生成的偽隨機序列。由於水印信息嵌入的位置是LSB,為了滿足水印的不可見性,允許嵌入的水印強度不可能太高。然而針對空域的各種處理,如遊程編碼前的預處理,會對不顯著分量進行一定的壓縮,所以LSB演算法對這些操作很敏感。因此LSB演算法最初是用於脆弱性水印的。
LSB演算法基本步驟:
1.將得到的隱藏有秘密信息的十進制像素值轉換為二進制數據;
2.用二進制秘密信息中的每一比特信息替換與之相對應的載體數據的最低有效位;
3.將得到的含秘密信息的二進制數據轉換為十進制像素值,從而獲得含秘密信息的圖像。
%信息嵌入
Picture=imread(『c:\test.tif』);
%讀入載體圖像
Double_Picture=Picture;
Double_Picture=double(Double_Picture);
%將圖像轉換為二進制
『c:\test.txt』_id=fopen(『c:\test.txt』,'r');
%讀取秘密信息文件
[msg,len]=fread(『c:\test.txt』_id,'ubit1');
[m,n]=size(Double_Picture);
p=1;
%p為秘密信息的位計數器
forf2=1:n
forf1=1:m
Double_Picture(f1,f2)=Double_Picture(f1,f2)-mod(Double_
Picture(f1,f2),2)+msg(p,1);
%將秘密信息按位隱藏入連續的像素中
ifp==len
break;
end
p=p+1;
end
ifp==len
break;
end
end
Double_Picture=uint8(Double_Picture);
imwrite(Double_Picture,『c:\result.tif』);
%生成秘密信息
subplot(121);imshow(Picture);title('未嵌入信息的圖片');
subplot(122);imshow(Double_Picture);title('嵌入信息的圖片');
%信息提取
Picture=imread(『c:\result.tif』);
%讀入隱秘信息的圖像
Picture=double(Picture);
[m,n]=size(Picture);
frr=fopen(『c:\result.txt』,'a');
len=8;
%設定隱秘信息長度
p=1;
forf2=1:n
forf1=1:m
ifbitand(Picture(f1,f2),1)==1
%順序提取圖像相應像素LSB的秘密信息
fwrite(frr,1,'bit1');
result(p,1)=1;
else
fwrite(frr,0,'bit1');
result(p,1)=0;
end
ifp==len
%判斷秘密信息是否讀完
break;
end
p=p+1;
end
ifp==len
break;
end
end
fclose(frr);