潘曉勇 王龍
摘要:文章針對(duì)利用格式化文本進(jìn)行數(shù)據(jù)隱藏較為困難的問題,提出了一種基于RTF文檔中控制命令字符對(duì)大小寫不敏感進(jìn)行編碼而達(dá)到數(shù)據(jù)隱藏目的的數(shù)據(jù)隱藏方法。首先,搜素RTF文檔中所有控制命令字符;其次,按照對(duì)控制命令字符第一個(gè)字母和前兩個(gè)字母大寫分別編碼成“0”和“l(fā)”的規(guī)則進(jìn)行編碼;最后,按此規(guī)則將密文信息按位進(jìn)行編碼并寫入RTF文檔;提取密文的解碼過程按規(guī)則反向進(jìn)行。該方法不改變?cè)臋n大小,編碼簡單,實(shí)現(xiàn)方便。
關(guān)鍵詞:數(shù)據(jù)隱藏;加密;RTF;編碼
隨著互聯(lián)網(wǎng)的發(fā)展和互聯(lián)網(wǎng)應(yīng)用的日益增多,互聯(lián)網(wǎng)在人們生活中的作用越來越強(qiáng),我們的工作、學(xué)習(xí)和生活的各個(gè)方面都被互聯(lián)網(wǎng)所滲透。在這樣一個(gè)互聯(lián)網(wǎng)無處不在的環(huán)境下,我們有意無意地向互聯(lián)網(wǎng)或互聯(lián)網(wǎng)上的設(shè)備或者人提供者各種各樣的數(shù)據(jù),各種各樣的個(gè)人信息。這些信息可能包括上網(wǎng)賬號(hào)、密碼、身高、體重、年齡,性別等個(gè)人信息,也可能包括家庭、朋友、同學(xué)、同事、所在單位等社交信息。這么多私密信息的傳送勢(shì)必帶來或多或少的信息安全問題,私密信息的泄露或非法信息的傳遞都屬于信息安全的范疇。整個(gè)互聯(lián)網(wǎng)發(fā)展到今天,和現(xiàn)代加密技術(shù)的發(fā)展是密不可分的,幾乎每一次加密技術(shù)的重大研究成果出現(xiàn)都會(huì)立刻被應(yīng)用到互聯(lián)網(wǎng)中來,被用來保證互聯(lián)網(wǎng)的信息安全。
信息隱藏技術(shù)是信息安全的一個(gè)重要分支,在人們的互聯(lián)網(wǎng)生活以及日常生活中扮演著重要的作用。它也隨著這些年信息安全方面的研究和互聯(lián)網(wǎng)應(yīng)用的發(fā)展受到越來越多人的重視。所謂的信息隱藏技術(shù),更確切地來說應(yīng)該稱為信息偽裝技術(shù),是將被隱藏的敏感信息隱藏于另一份非機(jī)密的信息載體中。信息隱藏技術(shù)的載體可以是圖片、視音頻、文檔等。信息隱藏要盡量減少載體變化,特別是可被人直接感知的變化,比如外觀、形狀、顏色、大小或聲音等,這些變化越小,越不容易引起人的警覺。同時(shí),也要盡量向計(jì)算機(jī)隱藏這種變化,至少讓計(jì)算機(jī)可以正確識(shí)別,而攻擊者卻不能輕易提取[l]。
在常用的信息隱藏技術(shù)中,視頻、音頻、圖像和文檔常被用來作為隱藏的載體。本文主要介紹了一種基于RTF文檔的數(shù)據(jù)隱藏技術(shù),所以在這里先列舉幾種常見的文檔數(shù)據(jù)隱藏方法。常見文檔數(shù)據(jù)隱藏方法有:利用文檔中人眼對(duì)字符大小的微小變化不敏感而采用調(diào)整字符的大小進(jìn)行編碼來實(shí)現(xiàn)數(shù)據(jù)隱藏,利用文檔中人眼對(duì)字符顏色的微小變化不敏感而采用微調(diào)字符顏色進(jìn)行編碼來實(shí)現(xiàn)數(shù)據(jù)隱藏,利用文檔中人眼對(duì)標(biāo)點(diǎn)符號(hào)左右是否有空格不敏感而通過在文檔中標(biāo)點(diǎn)符號(hào)左右添加空格來進(jìn)行編碼來實(shí)現(xiàn)數(shù)據(jù)隱藏[2]。本文提出了一種針對(duì)富文本格式(Rich Text Format,RTF)文檔對(duì)格式控制命令字符大小寫不敏感進(jìn)行編碼實(shí)現(xiàn)數(shù)據(jù)隱藏的技術(shù)。該方法不改變?cè)嘉臋n大小和呈現(xiàn),完全不影響計(jì)算機(jī)顯示和人的閱讀。
1 隱藏算法
RTF是由美國微軟公司開發(fā)的跨平臺(tái)文檔格式。大多數(shù)的文字處理軟件都能讀取和保存RTF文檔,特別地,WINDOWS自帶的“寫字板”軟件就可以直接讀取和編輯RTF文檔。
以如圖1所示的一個(gè)RTF文檔為例,在這篇RTF文檔里,命令符用“\”加上命令控制字符的格式進(jìn)行保存。比如:“\colortbl”表示顏色表,“\red255”表示“紅色值為255”等。對(duì)于RTF文檔編輯器來說,“\red255”和“\Red255”、“\REd255”是等價(jià)的,都被解釋成“紅色值為255”,即RTF丈檔對(duì)命令格式控制字符大小寫不敏感。
(\colortbl. \redl28\greenlOO\bluel62, \redl55\greenO\blue211. \red250\gr eenOkblue0;){\:#\generator Riched20 10.0.15063}
(\viewkind4\ucl\pard\sa200\s L276\slmultl\fO\fs22\lang2002
aff\Cf0f\cFO fffff\cfo f\CFO ffffff\cfo b\cfO\fs44 c\ul\fs22 d\ulnone\i e\iO\strikef\strikeO\fs144 g\par\fs22\par)
基于這個(gè)原則,可以將“\”后面跟一個(gè)大寫字母的命令編碼為0,將“\”后面跟兩個(gè)大寫字母的命令編碼為1,來進(jìn)行二進(jìn)制編碼。RTF文檔中還存在“\”加其他非命令字符的情況,對(duì)非命令字符進(jìn)行轉(zhuǎn)換將影響文檔的呈現(xiàn),這種情況要排除。先建立一個(gè)RTF命令字典mdict0存儲(chǔ)所有RTF文檔命令,再進(jìn)行加密運(yùn)算。隱藏算法如下:(l)將待隱藏密文轉(zhuǎn)換為“01”比特流,讀取第一個(gè)比特位。(2)從頭搜索RTF文件,比對(duì)命令字典mdict0,遇到“\”和命令字典mdict()中命令匹配字符,按“0”轉(zhuǎn)換為命令第一個(gè)字符大寫,“l(fā)”轉(zhuǎn)換為命令第一、二個(gè)字符都大寫的規(guī)則進(jìn)行轉(zhuǎn)換。(3)重復(fù)步驟(2)直至密文轉(zhuǎn)換完畢。
以上面文檔為例,將信息“01111110”隱藏后得到的RTF文檔如圖2所示。從中可以看到,密文和明文僅僅在某些命令的頭兩個(gè)字幕的大小寫上有變化,對(duì)于其他內(nèi)容,特別是文檔的具體內(nèi)容沒有進(jìn)行任何改變,文檔的大小也沒有發(fā)生變化,達(dá)到了隱藏真實(shí)信息的目的。并且,這種算法的編碼過程非常簡單,算法實(shí)現(xiàn)復(fù)雜度小,易于推廣使用。
2解隱藏算法
接收方接收到了隱藏了密文信息的RTF文檔后,進(jìn)行解碼處理。解隱藏算法如下:(1)從頭掃描接收的RTF文檔。(2)比對(duì)命令字典mdict(),按命令第一個(gè)字符大寫轉(zhuǎn)換為比特“0”,命令第一、二個(gè)字符大寫轉(zhuǎn)換為比特“1”的規(guī)則進(jìn)行解碼。(3)重復(fù)步驟(2)直至文檔結(jié)束。(4)將解碼后的“0”“l(fā)”比特流生成為解密文件。不難看出,這種算法的解隱藏非常簡單,使用起來很方便。
3分析
上述算法可以達(dá)到RTF中每個(gè)命令符號(hào)隱藏一個(gè)比特信息的隱藏容量。為進(jìn)一步提高隱藏容量,可以嘗試一個(gè)命令中更改3個(gè)大寫字符來隱藏兩個(gè)甚至更多比特密文信息的方法。本文提出的方法所用的隱秘載體是公開的,通信的安全性完全依賴于對(duì)該方法本身的保密性,這就違背了Kerckhoffs原理[3]。解決這個(gè)問題的解決途徑有兩個(gè):(l)對(duì)所傳輸?shù)拿孛苄畔⑦M(jìn)行加密,這樣即使信息被截獲,只要沒有正確密鑰第三方就無法破譯。(2)隱藏時(shí)用一個(gè)密鑰控制隱藏過程,如利用長度為L的二進(jìn)制隨機(jī)序列K作為密鑰,雙方同時(shí)持有該密鑰。隱藏時(shí),密文H的某一位信息H (I) K(I%L)為1進(jìn)行大寫轉(zhuǎn)換,為0不轉(zhuǎn)換。這樣檢測者必須知道密鑰K才能解碼,提高了傳輸?shù)陌踩浴榉乐筊TF被更改,對(duì)密文信息先進(jìn)行糾錯(cuò)交織編碼后再進(jìn)行信息隱藏,接收端解碼后再解交織和解糾錯(cuò)。當(dāng)解隱藏誤碼率較低時(shí),能得到完全正確的有效密文信息。
4結(jié)語
本文提出了一種基于RTF文檔的信息隱藏的算法。由于算法利用RTF文檔中命令控制符的大寫個(gè)數(shù)來代替相應(yīng)的秘聞“0”“1”比特流,因此,在視覺效果上RTF文檔的呈現(xiàn)沒有任何改變,并且RTF文檔的文件大小也沒有任何變化。因此很難引起檢測者的懷疑。這種算法中,一個(gè)RTF文檔命令控制符可以隱藏一個(gè)比特的信息,而RTF文檔中的命令控制符是很多的,因此隱藏容量可以達(dá)到比較好的水平;同時(shí)這種算法的編解碼過程非常簡單,因此算法實(shí)現(xiàn)復(fù)雜度小,易于推廣使用;另外,由于這種方法解碼過程并不需要原始的文檔提供任何位置參考,因此使用方便。
[參考文獻(xiàn)]
[1]張松,馮祺.通信信息隱藏技術(shù)研究[J]艦船電子工程,2016 (10):11-15.
[2]譚瑛.基于文本排版格式的信息隱藏方法比較研究[J]計(jì)算機(jī)與現(xiàn)代化,2013 (6):52-56
[3]孫權(quán).加密算法安全強(qiáng)度及發(fā)展趨勢(shì)分析[J]軟件產(chǎn)業(yè)與工程,2016(3):29-32,51