吳少華,宋致虎,胡 勇
(四川大學(xué) 電子信息學(xué)院,四川 成都610064)
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)已成為人們最重要的通信手段。特別是大數(shù)據(jù)時代,海量數(shù)據(jù)廣泛分布,隨之而來的個人信息安全也越來越引起人們的重視,如何加強(qiáng)個人信息安全和隱私保護(hù)是擺在我們面前的一個重要課題。信息加密和信息隱藏是保護(hù)私密信息安全的兩種基本方法。信息加密是指對私密信息內(nèi)容加密,由于加密后的信息無法直接讀取,因此易引起攻擊者的注意,截獲并破解,甚至破壞加密信息,信息的完整性很容易遭到破壞[1]。信息隱藏技術(shù)主要是指將特定的信息嵌入數(shù)字化宿主信息(如文本,數(shù)字化的聲音、圖像、視頻信號等)中,信息隱藏保證隱藏的信息不引起監(jiān)控者的注意和重視,從而減少被攻擊的可能性。如在此基礎(chǔ)上再使用密碼技術(shù)可以極大地加強(qiáng)隱藏信息的安全性。文獻(xiàn)[2]研究了信息隱藏的分類和技術(shù)特征,并根據(jù)信息隱藏的宿主信息形式進(jìn)行了分析。由于圖像文件本身占用空間較大,存在較大的可用空間,再加上人眼對圖像存在視覺冗余,因此,圖像數(shù)字圖像文件就成為了信息隱載體的最佳選擇?;贐MP圖像的LSB算法是最具代表性的信息隱藏算法。文獻(xiàn)[3]對LSB算法進(jìn)行了仿真和分析,驗證了LSB算法的特性,引入偽裝密鑰增強(qiáng)了算法的魯棒性和安全性。為了提高在非授權(quán)情況下提取信息的難度與信息隱藏的效率,文中實現(xiàn)了改進(jìn)的LSB算法:一是將控制信息也當(dāng)作信息嵌入到BMP文件的圖像數(shù)據(jù)區(qū),而不是放到位圖文件的保留字節(jié);二是在信息隱藏前對私密信息進(jìn)行了信息分割、RSA加密預(yù)處理;三是實現(xiàn)了改進(jìn)的LSB算法。
BMP文件是Windows操作系統(tǒng)中標(biāo)準(zhǔn)的圖像文件格式,它將內(nèi)存或顯示器的圖像數(shù)據(jù)直接按位存存儲到磁盤文件中,擴(kuò)展名為BMP,稱為BMP位圖。BMP圖像文件包括4部分:位圖文件頭、位圖信息頭、顏色表和位圖數(shù)據(jù)[4]。
24位BMP圖像文件的結(jié)構(gòu)特點:
1)文件頭由54個字節(jié)的數(shù)據(jù)段組成,包含圖像文件頭和圖像信息頭兩部分,文件頭表明了該圖像文件的類型、大小、圖像及打印格式等信息。
2)圖像數(shù)據(jù)部分從第55個字節(jié)開始,以圖像的左下角為起點,每個像素點用連續(xù)的3個字節(jié)表示,分別代表藍(lán)、綠、紅三基色在該像素中的亮度。
此外,還需要注的是Windows系統(tǒng)規(guī)定每個掃描行所占的字節(jié)數(shù)必須位4的整數(shù)倍,不足4的倍數(shù)的則要對其進(jìn)行擴(kuò)充。比如有一個W×H大小的位圖,其中W為位圖的寬度、H為位圖的高,每像素占N個比特,則掃描行所占的真實字節(jié)數(shù)為:
DataSizePerLine=(W×N/8+3)/4×4
在不壓縮情況下位圖數(shù)據(jù)的大小為:
biSizeImage=DataSizePerLine ×H1.2 BMP 文件中LSB應(yīng)用
LSB(Least Significant Bit,最低比特位嵌入技術(shù))是將私密信息嵌入BMP圖像文件的像素值的最低的1~3 bit,當(dāng)嵌入的比特數(shù)不大于3時對載體圖像的品質(zhì)影響最小,圖像質(zhì)量不會明顯下降。在信息還原時只需知道嵌入比特數(shù)和具體比特位置便可將信息還原出來。對于BMP位圖文件,在不改變圖像的質(zhì)量的情況下,根據(jù)亮度公式I=0.299R+0.587G+0.114B,以及人眼視網(wǎng)膜細(xì)胞對綠色最敏感,對藍(lán)色最不敏感的理論。對于每個BMP位圖像素,如果改變一個字節(jié)的最低有效位,其誤差率≤1/255。根據(jù)亮度公式,分別改變R、G、B各分量的最低2位、1位、3位,人眼仍不能明顯感覺到圖像的變化。因此,對于一幅24位位圖,其每像素可隱藏6 bit的信息。
信息分割的主要目的是為了增加信息隱藏技術(shù)的不可逆性,將私密信息隨機(jī)分割,記錄下分割順序后,將分割后的文件名通過MD5加密算法進(jìn)行加密,私密信息分割后用信息接收方的公鑰進(jìn)行RSA加密,信息只有接收方才能解密,因此大大增加了系統(tǒng)的安全性。信息分割流程如圖1所示。
圖1 文件分割流程Fig.1 Document segmentation procedure
2.2.1 RAS 加密算法流程
1)選兩個保密的大素數(shù) p和 q[5]。
2)計算 n=pq,m=(p-1)(q-1),其中 m 是 n的歐拉函數(shù)值。
3)選一整數(shù) e,滿足1<e<m,且 gcd(m,e)=1。
4)計算 d,滿足 de≡1modm。
5)以{e,n}為公鑰,{d,n}為私鑰。
6)將明文P,加密為密文C,計算方法為:c≡P^emodn。
7)將密文C解密為明文P,計算方法為:P≡C^dmodn。
2.2.2 私密信息RSA加密算法描述
通常LSB算法是采用直接轉(zhuǎn)換載體圖像的最低位方法來隱藏私密信息。比如利用LSB算法置最低k位實現(xiàn)在一個M×N大小的載體圖像中隱藏私密信息,則私密信息的提取公式為:
其中,m為提取的私密信息值,x'為按照LSB算法置換后的該像素點的值。根據(jù)模的性質(zhì),假設(shè)A mod B=C,且 A≥B,則(A-B)mod B=C?;谶@一性質(zhì),文獻(xiàn)[1]對傳統(tǒng)的LSB算法進(jìn)行了改進(jìn)。
設(shè)x表示置換前該點的像素值,d為置換前后像素值的變化量,則:
d的范圍可分為如下三個區(qū)間:
對于第一種條件下,當(dāng)x'<256-2k時,令x'=x'+2k,其余情況 x'不變。
對于第二種條件,x'保持不變。
對于第三種條件,當(dāng)x'≥2k時,令 x'=x'-2k,其余情況x'不變。
流程圖如圖2所示。
圖2 LSB算法流程Fig.2 Procedure of LSB algorithm
比如當(dāng)x=247時,其二進(jìn)制代碼為11110111,待隱藏的私密信息的二進(jìn)制代碼為001,采用LSB算法置換低三位,那么 x'=241,二進(jìn)制代碼為11110001。此時d=6,k=3,屬于第一種條件,將x'的值重新置為249,二進(jìn)制代碼為11111001,由此可見,采用改進(jìn)的LSB算法相對于原像素的值僅改變了2個單位,而提取私密信息的結(jié)果并不會改變。
如圖3所示,系統(tǒng)設(shè)計流程如下:
加密過程如下:
1)首先讀取隱藏信息獲取隱藏信息的大小,將隱藏信息進(jìn)行分割處理,分割數(shù)量根據(jù)秘密文件的大小以及載體文件的最大隱藏值決定,不論隱藏信息大小如何,其分割數(shù)量不得小于5個,另外分割后的文件需要按進(jìn)行序號標(biāo)注,序號采用MD5進(jìn)行加密。
2)將分割后的秘密文件分別運(yùn)用RSA加密算法進(jìn)行加密。
3)根據(jù)分割文件數(shù)量載入掩護(hù)BMP圖像文件,將每個隱藏信息塊分別隱藏到相應(yīng)的掩護(hù)BMP圖像文件中。
4)將所有已加密隱藏后的圖像文件生成一個統(tǒng)一的壓縮包,壓縮包內(nèi)是所有的隱藏圖像文件。
解密過程正好與之相反。
圖3 系統(tǒng)流程Fig.3 System procedure
程序運(yùn)行界面如圖4所示,首先點擊“瀏覽”按鈕選擇待加密的私密文件,然后再選擇所使用密鑰,最后點擊加密按鈕,程序即按照文中所闡述的原理對私密文件進(jìn)行加密和隱藏。
圖4 程序運(yùn)行界面Fig.4 Program interface
相對于傳統(tǒng)的LSB算法,實現(xiàn)了一種改進(jìn)的算法,使得文中的信息隱藏具有更好的隱藏效果,具體體現(xiàn)在以下幾點:
改進(jìn)LSB算法復(fù)雜度低,僅對信息進(jìn)行加或減運(yùn)算,提高了信息隱藏效率;
對于24位BMP圖像文件,每個像素用3個字節(jié)來表示,其中的6個比特可以用作隱藏信息,而文中改進(jìn)后LSB算法可以利用其中的8個比特隱藏信息,擴(kuò)充了可隱藏信息的容量,提高了隱藏效率,而載體圖像質(zhì)量并沒有明顯改變。
通過信息分割、RSA加密預(yù)處理,大大提高了在非授權(quán)情況下提取信息的難度。
[1]馮雪峰.改進(jìn) LSB算法及其在 BMP圖像中的應(yīng)用[J].信息技術(shù),2006(01):30 -32.FENG Xue-feng.An Improved LSB Algorithm for BMP Files[J].Information Technology,2006(01):30 - 32.
[2]王衍波,張凱澤,端木慶峰,等.廣義信息隱藏技術(shù)分類研究[J].軍事通信技術(shù),2007,28(04):45-50.WANG Yan-bo,ZHANG Kai-ze,DUANMU Qingfen,WANG Jing-yu.Classification of Generalized Information Hiding Technology[J].Journal of Military Communications Technology,2007,28(04):45 -50.
[3]趙曼,張衛(wèi)黨.基于圖像的信息隱藏技術(shù)的實現(xiàn)[J].通信技術(shù),2008,41(05):128-129.ZHAO Man,ZHANG Wei- dang.Realization Based on Images Information Hiding Technology[J].Communications Technology.2008,41(05):128 -129.
[4]張維谷.圖像文件格式(上)windows編程[M].北京:清華大學(xué)出版社,1996:40-82.ZANG Wei-gu.Image File Format Windows Programming[M].BeiJing,Tsinghua University Press,1996:40 -82.
[5]斯托林斯.密碼編碼學(xué)與網(wǎng)絡(luò)安全[M].北京:電子工業(yè)出版社,2011:266-300.William Stallings.Cryptography and Network Security[M].BeiJing,Pulishing House of Electronics Industry,2011:266-300.