基于圖像的雙重信息隱藏加密算法研究

信息隱藏加密技術(shù)是一個集多學(xué)科理論技術(shù)于一身的新興信息安全技術(shù),它將一個秘密信息隱藏在另一個信息(稱為遮掩信息或載體)中,且不改變載體的基本特征和使用價值。因此非法者從外觀上不知道這個載體中是否隱藏了其他的信息,即使知道,如果沒有正確的密鑰和提取算法也難以提取或去除隱藏的信息。信息隱藏中所用的載體可以是文字、圖像、聲音及視頻等。

我們以傳統(tǒng)的DES加密方法、BMP文件結(jié)構(gòu)隱藏原理和LSB信息隱藏技術(shù)為基礎(chǔ),我們提出了一個基于圖像的雙重信息隱藏加密算法。

一、DES加密算法

DES是一個分組加密算法,它以64位為一組,對數(shù)據(jù)文件加密。64位一組的明文文件從加密算法的一端輸入,64位的密文文件從另一端輸出。

DES加密算法是將初始密鑰和明文經(jīng)置換、異或和循環(huán)移動之后,生成的實(shí)際異或加密密鑰和明文文件進(jìn)行異或運(yùn)算得到密文文件。DES加密實(shí)質(zhì)流程分析如圖1所示。

基于圖像的雙重信息隱藏加密算法研究

二、BMP文件結(jié)構(gòu)隱藏信息的原理

BMP文件是Windows采用的標(biāo)準(zhǔn)圖像文件格式,是位圖文件。一幅圖像是由一系列像素點(diǎn)構(gòu)成的點(diǎn)陣,24位彩色圖像用3個字節(jié)來分別記錄R、G、B三通道的像素值。

在BMP位圖文件中,圖像像素數(shù)據(jù)是以連續(xù)行形式存放的,文件中存儲數(shù)據(jù)的先后依照圖像像素行從下往上,從左往右的順序。其中每個掃描行的字節(jié)數(shù)必須是4的倍數(shù),如果不足要用0補(bǔ)齊。根據(jù)BMP文件結(jié)構(gòu)特點(diǎn),我們提出了一種基于BMP圖像文件結(jié)構(gòu)的信息隱藏加密方法,即用秘密信息代替0值來填充這些補(bǔ)加的冗余字節(jié)。

三、LSB加密算法

LSB加密算法是一種基于空域的最低有效位隱藏算法,將秘密信息嵌入像素值的最低幾位比特,這樣對載體的品質(zhì)影響最小,可以保證其外部特征不會發(fā)生大的變化。信息提取時只需知道嵌入比特數(shù)及位置便可以將信息提取出來。對于24位彩色圖像,為了不改變圖像的質(zhì)量,根據(jù)視覺特性,人眼對綠色最敏感,對紅色次之,而對藍(lán)色最不敏感的理論,可以用秘密信息替換像素R、G、B三分量最低幾位比特位。

實(shí)踐表明,G分量改變最低1比特位,R分量改變最低2~3比特位,B分量改變最低3~4比特位不會使圖像發(fā)生人眼容易察覺的變化。這樣,一幅24位位圖每像素(RGB三字節(jié))可隱藏6~8個比特信息,隱藏效率可以提高到約25%(=6/(3@8))~3313%(=8/(3@8))。

四、基于圖像的雙重信息隱藏加密算法

基于BMP圖像文件結(jié)構(gòu)的信息隱藏加密方法由于秘密信息處于冗余字節(jié)中,對原圖像像素數(shù)據(jù)沒有做任何變動,不會引起視覺差異的,保持了不可見性,隱蔽性好。而LSB加密算法不僅具有加密算法簡單、透明性良好的特點(diǎn),還具有隱藏信息容量大、無失真提取等優(yōu)點(diǎn)。以上兩種方法,雖然都存在著魯棒性差缺點(diǎn),但因?yàn)榇蠖鄶?shù)圖像信息隱藏的目的是為了隱秘通信,通信雙方在這種應(yīng)用中最關(guān)心的性能是:安全性、不可感知性、信息量。因此,基于以上兩種方法,提出基于圖像的雙重信息隱藏加密算法。

基于圖像的雙重信息隱藏加密算法算法加密過程如下:

(1)打開待隱藏圖像文件,獲取像素值,用DES加密后生成加密圖像P;

(2)用BMP文件結(jié)構(gòu)隱藏加密算法將加密圖像P隱藏到中間掩護(hù)圖載體的冗余字節(jié)中,生成圖像Q;

(3)將圖像Q的像素轉(zhuǎn)化成0、1序列,對應(yīng)地嵌入到最終掩護(hù)圖像像素的最低有效位LSB。按R分量嵌入3位,B分量嵌入4位,G分量嵌入1位進(jìn)行嵌入,得到最終的掩護(hù)圖像。

基于圖像的雙重信息隱藏加密算法算法解密過程如下:

(1)讀取嵌入后的最終掩護(hù)圖像,按R分量提取3位,B分量提取4位,G分量提取1位進(jìn)行提取,得到0、1序列,按8位一組,轉(zhuǎn)化成對應(yīng)的像素,得到圖像Q;

(2)從圖像Q的冗余字節(jié)中提取加密像素,生成圖像P;

(3)對圖像P進(jìn)行DES解密,獲取像素值,得到隱藏圖像文件。

五、實(shí)驗(yàn)結(jié)果

使用VisualC++6.0的編程環(huán)境,采用圖2所示的真彩圖woman.bmp作為最后掩護(hù)圖像,圖3所示的真彩圖frui.tbmp作為中間掩護(hù)圖,圖4所示的的灰度圖lena256.bmp作為隱藏圖像。

基于圖像的雙重信息隱藏加密算法研究

實(shí)驗(yàn)最終結(jié)果如圖5所示,左邊為woman.bmp原圖,右邊為完成最終隱藏的結(jié)果。從實(shí)驗(yàn)結(jié)果可知,最終隱藏圖與原始的woman.bmp在視覺上沒有差別,保證了秘密信息嵌入后的透明性,達(dá)到了信息隱藏加密的目的。

基于圖像的雙重信息隱藏加密算法研究

VC實(shí)現(xiàn)的隱藏關(guān)鍵代碼:

for(i=0;i<secrectLen;i++)//secrectLen為待隱藏信息的數(shù)據(jù)長度

{

//lpBits為掩護(hù)圖像的像素指針,str為加密后待隱藏信息的數(shù)據(jù)指針

*(lpBits+p)=(*(lpBits+p)&(0xf0))|((*str)&(0x0f));

//B分量
*(lpBits+p+1)=(*(lpBits+p+1)&(0xfe))|(((*str)&(0x10))>>4);

//G分量

*(lpBits+p+2)=(*(lpBits+p+2)&(0xf8))|(((*str)&(0xe0))>>4);

//R分量

p+=3;

str++;

}

lena256.bmp最終成功的隱藏到了woman.bmp中,證實(shí)了本文提出的雙重信息隱藏加密算法的有效性和可行性。此加密算法具有隱蔽性好,算法簡單,嵌入信息量大等優(yōu)點(diǎn),同時較好的保持了不可見性,并且易于實(shí)現(xiàn),是一種比較高效的信息隱藏加密方法。

小知識之LSB算法

LSB算法:將秘密信息嵌入到載體圖像像素值的最低有效位,也稱最不顯著位,改變這一位置對載體圖像的品質(zhì)影響最小。