周 苑,周 巖
(河南工程學(xué)院 計算機(jī)學(xué)院,河南 鄭州 451191)
隨著電子商務(wù)、網(wǎng)絡(luò)銀行、網(wǎng)絡(luò)聊天等與人們?nèi)粘I蠲芮邢嚓P(guān)的網(wǎng)絡(luò)業(yè)務(wù)的應(yīng)用,越來越多的重要信息需要保密和安全傳輸,然而信息在網(wǎng)絡(luò)傳輸過程中卻存在各種安全隱患,所以在網(wǎng)絡(luò)環(huán)境下如何能夠安全隱秘地通信成為網(wǎng)絡(luò)研究的一項重要內(nèi)容.
信息隱藏技術(shù)(Information hiding)是在傳統(tǒng)密碼學(xué)的基礎(chǔ)上發(fā)展起來的一門涉及信息論、密碼學(xué)、應(yīng)用數(shù)學(xué)、計算機(jī)科學(xué)、網(wǎng)絡(luò)技術(shù)、通信技術(shù)等多種學(xué)科的綜合性學(xué)科.信息隱藏技術(shù)利用人類感覺器官對數(shù)字信號的感覺冗余,將一個消息隱藏在另一個普通消息中,由于隱藏后的消息的外部表現(xiàn)只是普通消息的外部特征,故并不改變普通消息的外部特征和使用價值[1],從而保證了信息在傳遞過程中的保密性和安全性.信息隱藏技術(shù)將待隱藏的秘密信息稱為嵌入對象,將用于嵌入隱藏信息的公開信息稱為載體對象,通過使用特定的隱藏算法,將嵌入對象添加到可公開的載體對象中生成隱藏對象,為信息的嵌入過程;使用相反的方法從隱藏對象中提取嵌入對象的過程則為提取過程,其基本原理如圖1所示.
圖1 信息隱藏系統(tǒng)Fig.1 Information hiding system
在網(wǎng)絡(luò)聊天中,人們相互交流信息的主要形式是文本,而目前對文本信息的隱藏方式主要有基于語法、基于語義和基于格式3種.基于語法結(jié)構(gòu)的信息嵌入方式主要通過移動附加語的位置、加入形式主語、將主動句式變?yōu)楸粍泳涫郊安迦搿巴该鞫陶Z”等形式進(jìn)行信息隱藏,這種方法使句法結(jié)構(gòu)發(fā)生了變化,容易因不符合常規(guī)用法而引起攻擊者的懷疑,信息容量也不高.基于語義的信息嵌入方式主要通過同義詞替換手段進(jìn)行信息隱藏,由于漢語的多義性等特點,隱藏對象極易因不合邏輯或語義不連貫等引起攻擊者的注意,魯棒性較差.而基于格式的信息隱藏主要通過調(diào)整行間距、字間距、改變字符特征(字體、顏色、大小、下劃線等)等手段嵌入信息,這種方法嵌入的信息量有限,不能抵御格式攻擊.根據(jù)文獻(xiàn)[2]的工作,本研究提出了一種基于網(wǎng)絡(luò)聊天的信息隱藏方法,增大了存儲容量,與文獻(xiàn)[2]的方法相比,本方法更接近實際應(yīng)用,隱蔽性更好.
在網(wǎng)絡(luò)聊天中,聊天雙方可通過文本、語音、視頻等手段進(jìn)行信息交流,有時候為了快速便捷地表達(dá)一些語義,往往還會進(jìn)行表情符號的傳遞.為了在聊天時使交流的一些重要信息保密、不被他人獲取,可以在聊天的過程中綜合利用表情符號、空格和標(biāo)點符號等多種手段同步嵌入秘密對象,將隱藏對象發(fā)送給聊天的接受者.接受者在接收到隱藏對象后進(jìn)行解密,得到嵌入的隱蔽信息.隱藏對象在外觀特征上和普通的聊天信息無任何不同,由此可達(dá)到隱蔽通信的目的.
在網(wǎng)絡(luò)聊天中,由于聊天者習(xí)慣的不同,所以在聊天語句的構(gòu)成上有著多種不同的情況,如是否使用表情符號、表情符號放在句首還是句尾、表情符號和內(nèi)容之間是否添加空格等,也可以通過不同的表情符號傳遞一些特定的隱蔽信息.這些情況從視覺角度來看沒有任何特殊的地方,本研究基于這些特點,提出了網(wǎng)絡(luò)聊天中的信息隱藏方法,總體設(shè)計遵循定義1~5.
定義1:若表情符號出現(xiàn)在句首,則代表“1”,出現(xiàn)在句尾則代表“0”.
定義2:根據(jù)表情符號前后是否有空格出現(xiàn),可隱藏兩位信息,如前后均無空格代表“00”,前無空格后有空格代表“01”,前有空格后無空格代表“10”,而前后均有空格則代表“11”.
定義3:句尾有標(biāo)點符號代表“1”,否則代表“0”.
定義4:字體顏色可設(shè)置為紅、橙、黃、綠、青、藍(lán)、紫、黑其中的一種,可隱藏000,001,010,011,100,101,110或111其中的一種信息.
定義5:根據(jù)聊天內(nèi)容字符數(shù)的奇偶性隱藏1位信息,若字符數(shù)為奇數(shù),代表隱藏“1”;若字符個數(shù)為偶數(shù),代表隱藏“0”.
輸入:任意的聊天文本M和待隱藏的消息W;輸出:嵌入隱藏信息后的文本M' .步驟如下:
(1)發(fā)送者和接受者定義相同的文本顏色,規(guī)定相同的密鑰.(2)發(fā)送者將二進(jìn)制信息通過軟件轉(zhuǎn)換成二進(jìn)制序列,并將其按字節(jié)分組.(3)取字節(jié)的第一位,判斷是1還是0.根據(jù)表情符號的位置,若為1,則將表情符號放在句子開頭;若為0,則將表情符號放在句子的結(jié)尾.(4)取字節(jié)的第2,3位,判斷其值.根據(jù)表情符號前后的空格,若為“00”則表情符號前后均無空格;若為“01”則表情符號前無空格,后有空格;若為“10”則表情符號前有空格,后無空格;若為“11”則將前后均設(shè)空格.(5)取字節(jié)的第4,5,6位,判斷其值.根據(jù)其值為文本設(shè)置不同的顏色值,取#ff0000,#ffa500,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#000000中的一種.(6)取字節(jié)的第7位,判斷是1還是0.根據(jù)其值輸入一條隨意的聊天語句,字符數(shù)的奇偶性與該位保持一致.(7)取字節(jié)的第8位,判斷是1還是0.若值為1,則根據(jù)語句加上相應(yīng)的標(biāo)點符號“.”或“?”;若為0,則不加標(biāo)點符號.(8)將含密文本發(fā)送給接受者.(9)重復(fù)第(3)~(8)步,直至將所有的隱秘信息傳送完畢.
提取隱藏信息的過程則為隱藏過程的逆過程.接受者查看接收到的每條消息表情符號的位置,若在句首,字節(jié)數(shù)組第一個元素存儲“1”,否則存儲“0”;根據(jù)表情符號前后空格的情況,將提取的信息寫入數(shù)組的第2,3元素;根據(jù)文本的顏色,提取三位信息,寫入字節(jié)數(shù)組的第4,5,6元素;查看含密文本的字符數(shù)的奇偶性,若為奇數(shù),則將“1”寫入字節(jié)數(shù)組的第七元素,否則寫入“0”;最后根據(jù)是否有標(biāo)點符號,將“1”或“0”寫入字節(jié)數(shù)組.
作為一種信息隱藏技術(shù),不僅要在理論上可行,還要在程序上實現(xiàn),并且需要實際驗證才能得出可靠的結(jié)論.網(wǎng)絡(luò)聊天時信息隱藏程序的實現(xiàn)也比較簡單,如圖2所示.信息提取過程則為該過程的逆過程.
圖2 信息隱藏流程Fig.2 Information hiding process
下面通過一個具體實例來說明信息的隱藏和提取過程.假定在A和B的通信中,需要隱藏信息“避”,首先將其轉(zhuǎn)換為二進(jìn)制序列“1011000111011100”,按字節(jié)分為兩組,發(fā)送兩條消息將信息隱藏,如圖3所示.
圖3 聊天信息Fig.3 The messages of chat
當(dāng)接收者收到聊天信息后,首先根據(jù)表情符號的位置和前后的空格情況得到前三個比特位的信息“101”,然后根據(jù)文本顏色青色判斷緊接著的三個比特位信息為“100”,再根據(jù)文本字符個數(shù)判斷奇偶性,寫入第七比特位信息“0”,最后根據(jù)標(biāo)點符號寫入“1”.第二條聊天語句用相同的方法處理.最后,接受者從兩條聊天語句中獲取隱藏的秘密信息“1011000111011100”,再進(jìn)行對應(yīng)的轉(zhuǎn)換得到隱藏文本信息“避”,從而達(dá)到自然有效且隱蔽通信的目的.
分析該算法可知,該算法有多種方法將秘密信息隱藏在公開的聊天文本中,方式自然,隱蔽性更強(qiáng).根據(jù)該隱藏算法,一條簡單的聊天語句可以隱藏一個字節(jié)的信息,收發(fā)雙方可以像普通聊天一樣,通過多條聊天語句隱藏大容量的消息.通信雙方通過密鑰來隱藏和提取信息,為了加強(qiáng)安全性能,可單獨傳送密鑰.在提取隱藏信息的過程中,該方法并不需要任何其他信息,只需對聊天文本進(jìn)行簡單處理,即可實現(xiàn)對秘密信息的盲提取.
網(wǎng)絡(luò)聊天中的信息隱藏技術(shù)是一種簡單可行、可以廣泛應(yīng)用的方法,該方法構(gòu)造簡單、實現(xiàn)容易、隱藏和提取速度快,只需輸入待發(fā)送文本和待隱藏信息,就可以構(gòu)造相應(yīng)的載體文本,不會對聊天速度產(chǎn)生顯著影響,便于應(yīng)用推廣.
參考文獻(xiàn):
[1] 陳波,譚運(yùn)猛,吳世忠.信息隱藏技術(shù)綜述[J].計算機(jī)與數(shù)字工程,2005,33(2):21-23,27.
[2] 陳萍,孫利.基于表情符號的信息偽裝算法設(shè)計與實現(xiàn)[J].太原理工大學(xué)學(xué)報,2012,43(4):456-459.
[3] 廖琪男.基于Word和PPT文檔圖像的信息隱藏[J].計算機(jī)工程,2010,36(10):163-164.
[4] 鐘征燕.基于PDF文檔結(jié)構(gòu)的數(shù)字水印算法[J].計算機(jī)應(yīng)用,2012(10):2776-2778,2782.
[5] 劉東,周明天.利用字符的冗余編碼攜帶隱藏信息的文本數(shù)字水印技術(shù)[J].計算機(jī)應(yīng)用研究,2007(2):155-157.