本站小編為你精心準備了RSA與LSB算法的信息隱藏參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
《通信技術雜志》2014年第六期
1BMP格式及LSB算法
BMP文件是Windows操作系統中標準的圖像文件格式,它將內存或顯示器的圖像數據直接按位存存儲到磁盤文件中,擴展名為BMP,稱為BMP位圖。BMP圖像文件包括4部分:位圖文件頭、位圖信息頭、顏色表和位圖數據[4]。24位BMP圖像文件的結構特點:1)文件頭由54個字節的數據段組成,包含圖像文件頭和圖像信息頭兩部分,文件頭表明了該圖像文件的類型、大小、圖像及打印格式等信息。2)圖像數據部分從第55個字節開始,以圖像的左下角為起點,每個像素點用連續的3個字節表示,分別代表藍、綠、紅三基色在該像素中的亮度。此外,還需要注的是Windows系統規定每個掃描行所占的字節數必須位4的整數倍,不足4的倍數的則要對其進行擴充。比如有一個W×H大小的位圖,其中W為位圖的寬度、H為位圖的高,每像素占N個比特,則掃描行所占的真實字節數為:DataSizePerLine=(W×N/8+3)/4×4在不壓縮情況下位圖數據的大小為:biSizeImage=DataSizePerLine×H1.2BMP文件中LSB應用LSB(LeastSignicantBit,最低比特位嵌入技術)是將私密信息嵌入BMP圖像文件的像素值的最低的1~3bit,當嵌入的比特數不大于3時對載體圖像的品質影響最小,圖像質量不會明顯下降。在信息還原時只需知道嵌入比特數和具體比特位置便可將信息還原出來。對于BMP位圖文件,在不改變圖像的質量的情況下,根據亮度公式I=0.299R+0.587G+0.114B,以及人眼視網膜細胞對綠色最敏感,對藍色最不敏感的理論。對于每個BMP位圖像素,如果改變一個字節的最低有效位,其誤差率≤1/255。根據亮度公式,分別改變R、G、B各分量的最低2位、1位、3位,人眼仍不能明顯感覺到圖像的變化。因此,對于一幅24位位圖,其每像素可隱藏6bit的信息。
2隱藏信息預處理
2.1信息分割信息分割的主要目的是為了增加信息隱藏技術的不可逆性,將私密信息隨機分割,記錄下分割順序后,將分割后的文件名通過MD5加密算法進行加密,私密信息分割后用信息接收方的公鑰進行rsa加密,信息只有接收方才能解密,因此大大增加了系統的安全性。信息分割流程如圖1所示。
2.2RSA加密
2.2.1RAS加密算法流程1)選兩個保密的大素數p和q[5]。2)計算n=pq,m=(p-1)(q-1),其中m是n的歐拉函數值。3)選一整數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加密算法描述//加密信息隱藏Input載體and隱藏信息;(publicKey==””)//首次加密,則應產生公鑰與私鑰{writeFile(publicKey,privateKey);//生成公鑰與私鑰并保存到文本read隱藏信息;convert字節流;RSA(分組字節流);//加密,獲得密文Convert十六進制密文;lsb(十六進制密文,載體);//隱藏信息Output掩護圖像(24位bmp);}//解密信息提取Input掩護圖像andprivatKeyand保存隱藏信息的路徑;LSB提取加密后的隱藏信息;//提取信息Convert字節流;RSA(字節流,privateKey);//解密,獲得隱藏信息writeFile(隱藏信息);//保存隱藏信息output隱藏信息;//輸出隱藏信息
3LSB算法的改進
通常LSB算法是采用直接轉換載體圖像的最低位方法來隱藏私密信息。比如利用LSB算法置最低k位實現在一個M×N大小的載體圖像中隱藏私密信息,則私密信息的提取公式為:其中,m為提取的私密信息值,x''''為按照LSB算法置換后的該像素點的值。根據模的性質,假設AmodB=C,且A≥B,則(A-B)modB=C。基于這一性質,文獻[1]對傳統的LSB算法進行了改進。設x表示置換前該點的像素值,d為置換前后像素值的變化量,則:比如當x=247時,其二進制代碼為11110111,待隱藏的私密信息的二進制代碼為001,采用LSB算法置換低三位,那么x''''=241,二進制代碼為11110001。此時d=6,k=3,屬于第一種條件,將x''''的值重新置為249,二進制代碼為11111001,由此可見,采用改進的LSB算法相對于原像素的值僅改變了2個單位,而提取私密信息的結果并不會改變。
4系統實現
4.1系統流程如圖3所示,系統設計流程如下:加密過程如下:1)首先讀取隱藏信息獲取隱藏信息的大小,將隱藏信息進行分割處理,分割數量根據秘密文件的大小以及載體文件的最大隱藏值決定,不論隱藏信息大小如何,其分割數量不得小于5個,另外分割后的文件需要按進行序號標注,序號采用MD5進行加密。2)將分割后的秘密文件分別運用RSA加密算法進行加密。3)根據分割文件數量載入掩護BMP圖像文件,將每個隱藏信息塊分別隱藏到相應的掩護BMP圖像文件中。4)將所有已加密隱藏后的圖像文件生成一個統一的壓縮包,壓縮包內是所有的隱藏圖像文件。解密過程正好與之相反。
4.2程序界面程序運行界面如圖4所示,首先點擊“瀏覽”按鈕選擇待加密的私密文件,然后再選擇所使用密鑰,最后點擊加密按鈕,程序即按照文中所闡述的原理對私密文件進行加密和隱藏。
5結語
相對于傳統的LSB算法,實現了一種改進的算法,使得文中的信息隱藏具有更好的隱藏效果,具體體現在以下幾點:改進LSB算法復雜度低,僅對信息進行加或減運算,提高了信息隱藏效率,對于24位BMP圖像文件,每個像素用3個字節來表示,其中的6個比特可以用作隱藏信息,而文中改進后LSB算法可以利用其中的8個比特隱藏信息,擴充了可隱藏信息的容量,提高了隱藏效率,而載體圖像質量并沒有明顯改變。通過信息分割、RSA加密預處理,大大提高了在非授權情況下提取信息的難度。
作者:吳少華宋致虎胡勇單位:四川大學電子信息學院