謝志強(qiáng) 錢嚴(yán)成 王帥 王亞萍 崔杰
摘 要:針對(duì)如何安全有效地保護(hù)在傳輸過(guò)程中的信息,提出了對(duì)信息的安全傳輸采取加密和隱藏兩大保護(hù)措施,該設(shè)計(jì)通過(guò)AES加密算法對(duì)帶傳輸信息進(jìn)行加密,然后以數(shù)字圖像作為載體,利用LSB算法和DCT變換兩種圖像嵌入方式將所得密文隱藏在不易被察覺(jué)的BMP格式圖像中,從而達(dá)到信息傳輸?shù)碾p重保護(hù)之目的。發(fā)現(xiàn)LSB算法隱藏后的圖片峰值信噪比為PSNR0=73.965 6,DCT算法隱藏后的圖片峰值信噪比為PSNR0=55.852 9。結(jié)果表明,基于LSB算法和DCT算法的信息隱藏能夠更好的達(dá)到信息安全傳輸?shù)男Ч?,是一種值得信賴的信息傳輸方案。
關(guān)鍵詞:AES;數(shù)字圖像;LSB;DCT變換;信息隱藏
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2016)05-00-04
0 引 言
計(jì)算機(jī)科技水平的迅速提高和密碼學(xué)技術(shù)的飛速發(fā)展,為信息隱藏領(lǐng)域的研究提供了廣闊的發(fā)展空間。計(jì)算機(jī)網(wǎng)絡(luò)涉及我們生活的方方面面,其中重要信息的安全傳輸已成為國(guó)家,企業(yè)甚至我們?nèi)伺c人之間面臨的嚴(yán)重問(wèn)題。國(guó)家機(jī)密需要安全傳輸,各國(guó)之間信息通信都需要絕對(duì)保密,在各國(guó)的法律中,泄漏國(guó)家機(jī)密者會(huì)遭到嚴(yán)懲;企業(yè)文件需要安全傳輸,如果企業(yè)信息遭到惡意泄漏可能會(huì)對(duì)企業(yè)造成不可估量的損失甚至導(dǎo)致企業(yè)破產(chǎn);人與人之間的信息傳遞有時(shí)也需要安全傳輸,個(gè)人信息的泄漏可能會(huì)給我們帶來(lái)很多不必要的麻煩。因此在我們的生活中,在傳輸前對(duì)重要信息加密已是必不可少的手段。但是傳統(tǒng)加密技術(shù)對(duì)多媒體內(nèi)容的保護(hù)和完整性認(rèn)證仍具有很大的局限性。如果僅對(duì)傳輸信息進(jìn)行簡(jiǎn)單加密,生成的密文在傳輸過(guò)程中很容易引起攻擊者的注意,并可能被惡意破解,而且一旦加密信息被成功破解,傳輸?shù)男畔⒕蜁?huì)完全暴露。
早期的信息安全傳輸主要在信息源和信息傳輸途徑兩大方面下功夫。在信息源上,主要采取一些加密措施,比如用于數(shù)據(jù)加密的MD5加密算法,廣泛應(yīng)用于用戶的登陸密碼方面;既可以用于數(shù)據(jù)加密也可以用于數(shù)字簽名的RSA加密算法至今未被完全攻破;由IBM公司設(shè)計(jì)的被美國(guó)國(guó)家標(biāo)準(zhǔn)局采納作為非機(jī)密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)的DES加密算法是目前比較流行的一種加密算法。在傳輸途徑上,信息隱藏技術(shù)具有良好的不可察覺(jué)性、魯棒性和大信息量的特點(diǎn),信息隱藏技術(shù)在信息安全保障領(lǐng)域的諸多方面發(fā)揮著重要作用,主要應(yīng)用于數(shù)據(jù)保密通信、身份認(rèn)證、數(shù)字作品的版權(quán)保護(hù)和盜版追蹤以及對(duì)于數(shù)字作品的完整性、真實(shí)性的鑒定與內(nèi)容恢復(fù)等方面[1,2]。
信息隱藏技術(shù)則是利用人類感官系統(tǒng)的不敏感,將隱秘信息隱藏在特定的載體中,使之不被察覺(jué)或者不易被注意,隱藏的載體可以是圖像、聲音或者文本等數(shù)字信號(hào)。圖片具有良好的不易察覺(jué)性和隱蔽性[3,4]。
因此,本方案提出將需要傳輸信息通過(guò)AES加密后利用LSB算法和DCT變換將密文嵌入圖片中,隱藏了信息的存在形式,不易引起攻擊者的注意,從而避免了被攻擊的危險(xiǎn)。即使傳輸文件被攻擊者發(fā)現(xiàn),信息被提取出來(lái),惡意攻擊者得到的也只是被加密后的密文,若想得到真正的信息,仍需要攻克AES加密算法來(lái)提取信息[5]。
1 相關(guān)知識(shí)
1.1 AES加密算法
在本文中,AES加密算法的密鑰長(zhǎng)度分為128 b,192 b和256 b三種不同類型。算法相應(yīng)的進(jìn)行10輪,12輪和14輪運(yùn)算。AES加密算法共分為密鑰擴(kuò)展,數(shù)據(jù)加密和數(shù)據(jù)解密三大部分。
1.1.1 密鑰擴(kuò)展
AES輸入密鑰為可選的128 b,192 b或256 b,相應(yīng)要進(jìn)行10輪,12輪和14輪加解密運(yùn)算。不失一般性,我們以128 b,10輪運(yùn)算為例。密鑰是生成算法的輸入為4 word的密鑰,輸出為初始4 word密鑰加密以及后10輪加密所需的共44 word的密鑰。
1.1.2 數(shù)據(jù)加密[6]
(1)字節(jié)替換:依據(jù)S置換表對(duì)狀態(tài)矩陣中的數(shù)字進(jìn)行置換。
(2)行位移:應(yīng)用枚舉法對(duì)狀態(tài)矩陣中的各行數(shù)據(jù)進(jìn)行循環(huán)移位運(yùn)算。
(3)列混淆:對(duì)狀態(tài)矩陣實(shí)施列混合運(yùn)算。
(4)密鑰加:對(duì)狀態(tài)矩陣做輪密鑰加法變換。
通過(guò)S盒替換可得到4×6字節(jié)矩陣,其中Si,j是第i行第j列的字節(jié),0≤i≤3,0≤j≤5。輪密鑰加法變換(Add Round Key)作為加解密的核心算法為AES編程提供了極大方便,該運(yùn)算的原理實(shí)際上是在GF(28)域上實(shí)行的多項(xiàng)式間的運(yùn)算。分別為乘法(*)和異或()運(yùn)算。加密解密中所用到的常數(shù)共6個(gè):0x02、0x03、0x09、0x0b、0x0d和0x0e。加密的核心公式,即列混合運(yùn)算[7]見(jiàn)式(1):
1.1.3 數(shù)據(jù)解密
數(shù)據(jù)解密使用字節(jié)替換函數(shù)(Inv Shift Rows)、行位移函數(shù)(Inv Sub Bytes)、列混淆函數(shù)(Inv Mix Columns)以及輪密鑰加法函數(shù)(Add Round Key)分別實(shí)現(xiàn)解密操作,各函數(shù)功能和加密的功能類似,在這里就不重復(fù)說(shuō)明,解密的核心算法如公式(2)所示。
1.2 LSB算法
LSB算法又叫做最低有效位算法,旨在修改載體信息的最低有效位以達(dá)到信息嵌入的目的。將目標(biāo)文本信息嵌入到bmp圖像中[8,9]并提取出來(lái)。
1.2.1 嵌入文本信息
由于每個(gè)漢字在計(jì)算機(jī)內(nèi)存儲(chǔ)時(shí)占兩個(gè)字節(jié),其余字符等都只占一個(gè)字節(jié)。因此以兩個(gè)字節(jié)(即16位)為一個(gè)單元進(jìn)行文本信息整理。對(duì)于輸入的文本,開(kāi)辟(S+2)個(gè)單元,即(16×(S+2))位。將第一個(gè)和最后一個(gè)單元分別作為標(biāo)記位,從低到高,取‘0001與‘#的對(duì)應(yīng)位做取模運(yùn)算并依此移位。對(duì)于要隱藏的文本信息進(jìn)行相似的取模及移位處理,所不同的是,此處要用文本信息流來(lái)與‘0001進(jìn)行運(yùn)算。如此就完成了文本信息的處理。
根據(jù)bmp載體文件的特點(diǎn),前54位是bmp文件頭和位圖信息頭,修改會(huì)損壞文件的格式。因此只能從第55個(gè)字節(jié)開(kāi)始進(jìn)行信息的嵌入,嵌入算法與之前的文本信息處理機(jī)制基本相同,差異在于要用之前存儲(chǔ)的文本的最低位替換掉原來(lái)圖片的最低位[8]。
如此就將處理過(guò)的文本信息嵌入到了載體中。
1.2.2 提取文本信息
根據(jù)文本嵌入載體的原理,從第55位開(kāi)始截取圖片流的最后一位并按照從低到高的順序?qū)⑶度氲男畔⑻崛〕鰜?lái)[10]。采用與前面嵌入運(yùn)算相同的算法,對(duì)圖片的低位(即文本信息)進(jìn)行取模和移位運(yùn)算,提取信息。
再將提取出來(lái)的信息重新進(jìn)行組合從而讀取出嵌入的信息。在信息提取過(guò)程中,根據(jù)嵌入文件開(kāi)始部分和結(jié)束部分設(shè)置的‘#,進(jìn)行信息首部和尾部的判斷,有效避免了讀入多余信息或者丟失信息等現(xiàn)象的出現(xiàn),從而降低了信息還原時(shí)的失真率。如此就將嵌入到載體文件中的文本信息提取出來(lái)了。
1.3 DCT變換
1.3.1 DCT變換的定義
DCT變換全稱離散余弦變換,它的作用是將原始時(shí)域信號(hào)轉(zhuǎn)換到空間頻率域上,并能實(shí)現(xiàn)能量的集中。通過(guò)DCT變換,位于圖像上的重要可視信息轉(zhuǎn)換到一小部分DCT系數(shù)上,由此可以實(shí)現(xiàn)圖片的有損壓縮。另外,DCT變換也是JPEG壓縮的核心算法。DCT正變換的公式[11,12]見(jiàn)公式(3):
1.3.2 信息的嵌入和提取
本文所嵌入的載體是BMP文件格式的圖片,嵌入部分是BMP圖片的數(shù)據(jù)域,也是最原始的像素點(diǎn)。首先要獲取原始信息塊,一般為8×8的方塊,進(jìn)行DCT變換得到DCT系數(shù)表[11]。如果直接對(duì)DCT系數(shù)表進(jìn)行逆DCT(IDCT)變換,在不考慮誤差的情況下可以完全恢復(fù)原始數(shù)據(jù)。本文通過(guò)調(diào)整中頻系數(shù)對(duì)F(x1,y1),F(xiàn)(x2,y2)的相對(duì)大小來(lái)隱藏信息,具體實(shí)現(xiàn)方法為:如果要嵌入的比特為1,則使F(x1,y1)>F(x2,y2);如果要嵌入的比特為0,則使F(x2,y2)>F(x1,y1)。
一個(gè)DCT表中可選取多個(gè)中頻系數(shù)對(duì)進(jìn)行嵌入,這樣能夠增加信息隱藏量。然后對(duì)調(diào)整后的DCT系數(shù)進(jìn)行逆DCT變換得到變換后的數(shù)據(jù),再寫入載體文件中。選取中頻系數(shù)進(jìn)行嵌入有以下兩方面的原因:
(1)對(duì)于兩個(gè)中頻系數(shù),可以認(rèn)為它們的值大小處在一個(gè)量級(jí),這樣修改兩個(gè)處在同一量級(jí)上的中頻系數(shù)對(duì)原始文件破壞不會(huì)太大,較不容易引起圖片失真。
(2)低頻系數(shù)擁有的能量較大,人眼對(duì)低頻系數(shù)比較敏感,在低頻系數(shù)中嵌入,會(huì)降低算法的隱蔽性。高頻系數(shù)是壓縮的主要對(duì)象,修改高頻系數(shù)不利于算法的魯棒性。
同時(shí),本文選取JPEG量化表中量化值相同的中頻系數(shù)對(duì),并盡量減少圖片的失真,提高信息隱藏算法的隱蔽性。
信息的提取過(guò)程是嵌入的逆過(guò)程,先找到隱藏?cái)?shù)據(jù)的位置經(jīng)DCT變換得到DCT系數(shù)表[12],對(duì)比規(guī)定位置中頻系數(shù)對(duì)的相對(duì)大小。如果F(x1,y1)>F(x2,y2),獲取比特位1;如果F(x2,y2)>F(x1,y1),獲取比特位0。
2 方案的實(shí)現(xiàn)過(guò)程
本流程的方案如圖1所示。
圖1 方案流程圖
2.1 AES加密
以128 b,10輪加密過(guò)程為例,第1到9輪的加密過(guò)程完全相同,可以通過(guò)循環(huán)來(lái)實(shí)現(xiàn)。在具體的程序執(zhí)行中用字節(jié)替換函數(shù)(Sub Byte)對(duì)狀態(tài)矩陣中的數(shù)字進(jìn)行置換,然后用行位移函數(shù)(Shift Row)對(duì)矩陣中的數(shù)字進(jìn)行移位,通過(guò)列混合運(yùn)算公式(Mix Columns)得到新的狀態(tài)矩陣,最后將該混合矩陣和密鑰擴(kuò)展數(shù)組異或[6]得到狀態(tài)矩陣即完成一輪加密。第十輪加密過(guò)程不需要使用列混合運(yùn)算公式,其它部分和前九輪相同。
2.2 嵌 入
2.2.1 LSB嵌入
首先要進(jìn)行嵌入目標(biāo)信息的處理,獲取要嵌入信息的長(zhǎng)度S新建數(shù)組Temp。設(shè)置前后兩個(gè)標(biāo)記位,進(jìn)行如圖2所示的填充。
如此移位并進(jìn)行邏輯“與”運(yùn)算就處理好了信息頭部和尾部的標(biāo)記位。對(duì)于要嵌入的目標(biāo)信息,做與標(biāo)記位類似的操作,具體如圖3所示。
操作結(jié)束后就將要嵌入的信息處理完畢,下步將執(zhí)行信息嵌入圖片流的操作。
根據(jù)bmp文件的格式特點(diǎn),我們選擇從第55位開(kāi)始將信息嵌入圖片流,執(zhí)行的操作與上面信息的處理類似,讀圖片流依次移位,逐位進(jìn)行遍歷,直至所有信息嵌入成功。
2.2.2 DCT嵌入圖示
DCT嵌入圖示如圖4所示。
圖4 DCT嵌入圖示
2.3 提 取
2.3.1 LSB提取
提取是嵌入的逆向操作,根據(jù)上面的嵌入操作進(jìn)行反向操作,即可將信息提取出來(lái)。圖5所示為L(zhǎng)SB算法提取圖。
圖5 LSB算法提取
2.3.2 DCT提取
提取是嵌入的逆過(guò)程,將帶有隱藏信息的載體數(shù)據(jù)經(jīng)DCT變換后得到DCT系數(shù)表,比較指定中頻系數(shù)對(duì)F(x1,y1),F(xiàn)(x2,y2)的大小,若前者比后者大,得到比特為1,反之,得到的比特為0。
2.3.3 解 密
由于AES是對(duì)稱加密算法,因此其解密過(guò)程和加密過(guò)程類似。也需要10輪解密過(guò)程,前九輪可以通過(guò)循環(huán)實(shí)現(xiàn),最后一輪不需要列混合運(yùn)算公式。
3 方案的可行性分析
本方案采取先加密再隱藏的措施,對(duì)待傳輸信息做了兩步安全性處理。AES加密算法的安全性不必多說(shuō),在本方案中AES加密的密鑰分為128 b,192 b和256 b三種。以最小的128 b密鑰來(lái)說(shuō),對(duì)暴力攻擊也具有強(qiáng)大的免疫能力,暴力破解的可能性極低。且AES至少10輪以上的加密特點(diǎn)是AES對(duì)于差分密碼和線性密碼等類型的攻擊也具有良好的抵御能力。
信息存儲(chǔ)階段以16位作為一個(gè)單元,足夠進(jìn)行信息存儲(chǔ),不會(huì)出現(xiàn)信息遺漏。嵌入的過(guò)程從圖片流的第55位開(kāi)始嵌入,不會(huì)損害文件頭部信息,因此嵌入信息后文件能夠正常打開(kāi)。讀取信息時(shí),通過(guò)移位和邏輯與運(yùn)算,依次提取文件流的最低位,并將它們從低到高進(jìn)行整合。只要載體圖片本身沒(méi)有被改動(dòng),那么它的最低位就不會(huì)發(fā)生變化,就可以將嵌入信息原封不動(dòng)地讀取出來(lái),不會(huì)產(chǎn)生錯(cuò)誤。很明顯,整個(gè)過(guò)程無(wú)論是嵌入部分還是提取部分都是正確的,整體上也是正確的。
bmp文件的組成特點(diǎn)如下:
(1)bmp文件頭(bmp fileheader):提供文件的格式、大小等信息。
(2)位圖信息頭(bitmap information):提供圖像數(shù)據(jù)的尺寸、位平面數(shù)、壓縮方式、顏色引等信息。
(3)調(diào)色板(color palette):可選,如使用索引來(lái)表示圖像,調(diào)色板就是索引與其對(duì)應(yīng)的顏色的映射表。
(4)位圖數(shù)據(jù)(bitmap data):即圖像數(shù)據(jù)。
bmp圖片根據(jù)位數(shù)的不同,有的文件第54位之后直接存放位圖數(shù)據(jù),另外一些則存放調(diào)色板數(shù)據(jù),之后才是位圖數(shù)據(jù)。以上兩種不同的文件分別按照BGR,BGRA的順序,以一個(gè)字節(jié)為單位,存儲(chǔ)圖片每個(gè)像素各顏色分量的值。我們?cè)诟鱾€(gè)分量的最低位存儲(chǔ)要載入的信息,對(duì)以上情況同時(shí)適用。改變最低位嵌入信息的方法對(duì)于圖片質(zhì)量的影響微乎其微,再加上嵌入的信息屬于隱秘信息,從根本上說(shuō),信息量不可能太大,因此,此算法實(shí)用性很強(qiáng),基于此算法得到的含有嵌入的目標(biāo)信息的載體文件的隱秘性極好。bmp圖片處理參數(shù)見(jiàn)表1所列。
4.2 LSB隱藏
圖6所示為通過(guò)LSB隱藏前后的效果圖,其中原圖為未嵌入密文信息圖像,右邊圖片為嵌入密文信息后的圖像,兩張圖片在嵌入密文信息后完全看不出來(lái)有任何不同,兩張圖片的峰值信噪比為PSNR0=73.965 6。
圖6 LSB算法隱藏效果
4.3 DCT嵌入
在圖7所示的圖中,嵌入信息前后兩張圖片肉眼完全看不出任何不同,信息提取完整。圖像的峰值信噪比為PSNR0=55.852 9。
圖7 DCT算法嵌入效果
5 結(jié) 語(yǔ)
本論文在信息的安全傳輸上提出對(duì)傳輸信息先加密再隱藏的雙重保密措施,信息的傳輸采用對(duì)稱加密算法AES算法,可以對(duì)文本、音頻和圖像等不同傳輸對(duì)象進(jìn)行加密。得到的密文在傳輸過(guò)程中顯然很容易被非法攻擊者識(shí)破,因此我們想到將加密后的密文嵌入到攻擊者不易察覺(jué)的BMP格式的圖像中,具體的嵌入實(shí)現(xiàn)算法分為L(zhǎng)SB和DCT變換兩種,經(jīng)測(cè)試,本項(xiàng)目可以幾KB甚至十幾KB的信息通過(guò)AES加密將密文完整的隱藏在數(shù)字圖像中,肉眼完全分辨不出隱藏密文前后的圖像有任何不同,達(dá)到了良好的信息隱藏效果。本文中,AES加密算法的高安全性加上圖片信息隱藏的隱蔽性使得信息安全傳輸達(dá)到良好的效果,為維護(hù)信息安全另辟蹊徑,希望可以得到業(yè)界認(rèn)可。
參考文獻(xiàn)
[1]劉芳.圖像可逆信息隱藏技術(shù)若干問(wèn)題研究[D].大連:大連理工大學(xué),2013.
[2]特列克別克·米沙.一種新的信息隱藏算法的設(shè)計(jì)研究[D].成都:電子科技大學(xué),2013.
[3]黃世超.基于灰色系統(tǒng)理論的圖像信息隱藏技術(shù)研究[D].南京:南京郵電大學(xué),2014.
[4]唐明偉.圖像信息隱藏與隱藏分析算法研究[D].成都:電子科技大學(xué),2012.
[5]李名.信息熵視角下的密文圖像信息隱藏研究[D].重慶:重慶大學(xué),2014.
[6]張秀娟.基于AES加密算法的實(shí)現(xiàn)與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2011(11):132-133.
[7]楊帆. AES算法研究及FPGA實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2014.
[8]馮雪峰.改進(jìn)LSB算法及其在BMP圖像中的應(yīng)用[J].信息技術(shù),2006(1):30-32.
[9]張建偉.基于圖像的LSB隱藏算法位平面分析及算法改進(jìn)[J].裝備指揮技術(shù)學(xué)院學(xué)報(bào),2003,14(2):84-88.
[10]李麗.基于LSB的圖像信息隱藏技術(shù)研究[D].北京:北京郵電大學(xué),2011.
[11]張作林.基于DCT變換的信息隱藏技術(shù)[J].計(jì)算機(jī)工程,2005,31(21):127-128.
[12]王永皎,郭力爭(zhēng).基于DCT變換的圖像壓縮技術(shù)研究[J]. 河南城建學(xué)院學(xué)報(bào),2013,22(1):42-46.