鄒孜逸 王開西
摘要:針對(duì)目前利用宋詞進(jìn)行生成式隱寫方法詞典庫過大,載密文本安全性不高和隱寫成功率低的問題,提出了一種利用宋詞韻律中“中平仄”出現(xiàn)頻率的奇偶性進(jìn)行檢索的無載體文本隱寫方法。與現(xiàn)有利用宋詞進(jìn)行信息隱寫的方法相比,該方法不需要建立龐大的詞典庫,載密文本也不會(huì)出現(xiàn)語義問題和連貫性問題,提高了安全性和隱寫成功率,隱寫成功率為100%,隱藏容量為3 bits/詞牌。
關(guān)鍵詞:宋詞;韻律;無載體;安全性;成功率
中圖分類號(hào):TP309.7
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1006-1037(2021)01-0007-06
基金項(xiàng)目:國(guó)家自然科學(xué)基金(批準(zhǔn)號(hào):U1536113)資助。
通信作者:王開西,男,博士,副教授,主要研究方向?yàn)樾畔㈦[藏等。E-mail: kxwang@qdu.edu.cn
如今,信息技術(shù)飛速發(fā)展,信息隱藏對(duì)信息的安全傳輸具有重大意義?,F(xiàn)有的信息隱藏載體主要有文本、圖像、視頻、音頻、網(wǎng)絡(luò)流量[1]等。由于文本在網(wǎng)絡(luò)和生活中的應(yīng)用最為廣泛,因此基于文本的信息隱藏有著更加廣闊的應(yīng)用前景,主要應(yīng)用于以下3個(gè)方面:秘密信息的傳送、文本版權(quán)的保護(hù)、消息來源的確認(rèn)。目前文本隱寫主要分為修改載體和無載體的方法。其中修改載體的方法主要分為兩類:不基于語義的方法——利用人類視覺上的不可感知性,如通過修改排版[2]、變換字體顏色[3]、修改字體格式[4]、利用文件格式[5]、添加不可見字符[6]等方式;基于語義的方法——利用機(jī)器對(duì)語法和語義的不可感知性,如通過修改句子結(jié)構(gòu)[7]、進(jìn)行同義詞替換[8]、基于虛詞變換[9]等方式。但隨著機(jī)器學(xué)習(xí)的發(fā)展,修改載體的方法可以通過機(jī)器檢測(cè)的方式檢測(cè)出來,已經(jīng)無法滿足人們的需求,因此無載體隱寫受到越來越多的關(guān)注。因?yàn)闊o載體隱寫法不對(duì)載體文本進(jìn)行修改,因此提高了安全性。無載體隱寫法又分為生成法和檢索法。生成法中具有代表性的有宋詞生成法[10-12],基于單位規(guī)則的生成法[13]等。檢索法有基于漢字筆畫矩陣法[14],基于漢字?jǐn)?shù)學(xué)表達(dá)式法[15]等。針對(duì)目前利用宋詞進(jìn)行生成式隱寫法存在詞典庫過大,載密文本安全性不高和隱藏成功率低的問題,本文提出了一種利用宋詞韻律中“中平仄”出現(xiàn)頻率的奇偶性進(jìn)行檢索的無載體文本隱寫方法,該方法不需要建立詞典庫,載密文本也不會(huì)出現(xiàn)語義問題和連貫性問題,提高了安全性和隱寫成功率。
1 宋詞載體隱寫介紹
宋詞是中國(guó)古代的一種常見文體,其極富韻律和格式的文本特點(diǎn)為信息隱藏技術(shù)提供了良好的載體[16]。目前利用宋詞進(jìn)行信息隱寫也取得了一些成果。
余振山等[10]第一次提出利用宋詞韻律進(jìn)行隱寫,通過對(duì)韻律塊中含有的詞語進(jìn)行分詞組成詞典,然后進(jìn)行編碼,隱藏秘密消息的時(shí)候,根據(jù)秘密消息的二進(jìn)制串在宋詞模板中填入從詞典中查詢得到的可以表示對(duì)應(yīng)二進(jìn)制的詞語,以此來隱藏秘密消息。屈琪峰等[11]提出了一種基于句式控制的宋詞載體文本隱寫方法,通過分析宋詞韻律模板中韻律與詞性的關(guān)系,設(shè)計(jì)針對(duì)宋詞詞典的詞性提取算法,生成處理后的“韻律-詞性”詞典,隱藏秘密消息時(shí)通過設(shè)計(jì)基于句式控制的信息隱寫與提取算法,生成與原來宋詞格律、句式和詞性完全相同的隱寫載體。劉彥辰等[12]提出了一種利用宋詞韻律進(jìn)行隱寫的方法,主要思想是將整首詞的韻律分為固定的韻律塊,然后提取出所有宋詞的詞語組成詞典,根據(jù)每個(gè)韻律含有的詞語個(gè)數(shù)進(jìn)行編碼,隱藏秘密消息的時(shí)候就按照之前的編碼和隨機(jī)選擇模板算法生成新的宋詞,將新生成的宋詞發(fā)送給接收方。
總的來說,現(xiàn)在利用宋詞進(jìn)行隱寫已經(jīng)取得了一定的成果,但都是通過構(gòu)造詞典并生成宋詞進(jìn)行隱寫的方法,生成的隱寫宋詞與非隱寫宋詞仍存在不小的區(qū)別,因此安全性不高,很容易被懷疑隱藏了秘密消息,并且通信雙方需要共享一個(gè)較大的詞典庫來進(jìn)行秘密消息的隱寫與提取,這提高了雙方通信的成本。本文提出了一種利用宋詞韻律的無載體文本隱寫方法,通過對(duì)“中平仄”出現(xiàn)頻率的奇偶性進(jìn)行編碼,不生成詞典,使用原始的宋詞進(jìn)行隱寫,不對(duì)宋詞做任何更改,發(fā)送的時(shí)候通過檢索的方式獲得載密文本,既可以發(fā)送完整的宋詞,也可以只發(fā)送詞牌名,大大提高了方法的安全性,并且降低了通信成本,隱寫成功率為100%。
2 利用宋詞韻律進(jìn)行無載體隱寫的方法
2.1 宋詞知識(shí)介紹
2.1.1 詞牌 每首宋詞都必須有詞牌名,已知的詞牌有1 000多個(gè)。
2.1.2 平仄韻律 平仄是聲調(diào)的概念,簡(jiǎn)單來說,現(xiàn)代漢語普通話中的一聲和二聲屬于“平聲”,三聲和四聲屬于“仄聲”,詞譜中出現(xiàn)的“中”,則代表該處用字可以不計(jì)較讀音,用任何聲調(diào)的字都可以。由于古代漢語體系和現(xiàn)代漢語體系不完全相同,古代漢語中的“入聲”字在現(xiàn)代漢語普通話以及大部分北方方言中消失了,有些字就不適用以上的判斷方法。具體的韻律需要就固定的詞牌來定,一個(gè)詞牌的韻律是固定的,但是有可能出現(xiàn)兩種及以上不同的韻律。
2.2 利用宋詞韻律對(duì)詞牌編碼
對(duì)于宋詞中任意一個(gè)字的韻律都可以分為4類:平聲、仄聲、本仄可平和本平可仄。其中,本仄可平和本平可仄可以不計(jì)較一個(gè)字的讀音,因此統(tǒng)稱為“中聲”。對(duì)于任意一個(gè)詞牌,都可以得到它的韻律模板,以《滿江紅》為例,韻律如下:
中仄平平,平中仄、中平中仄。
平仄仄、仄平平仄,仄平中仄。
中仄中平平仄仄,中平中仄平平仄。
中中中、中仄仄平平,平平仄。
中中仄,平仄仄。平仄仄,平平仄。
仄平平中仄,仄平平仄。
中仄中平平仄仄,中平中仄平平仄。
中中中、中仄仄平平,平平仄。
有些詞牌會(huì)有變格的存在,變格往往使詞或曲在句式、平仄等方面發(fā)生增減變化,變格有時(shí)形成新的詞牌或曲牌。詩詞中完全符合“平仄兩兩交替”規(guī)則的聯(lián)句稱為“正格”,不完全符合的稱為“變格”。
本文收集了《唐宋詞格律》[17]中的152個(gè)詞牌的韻律, 只取其中所有的詞牌第一個(gè)出現(xiàn)的韻律作為隱寫韻律。因?yàn)槊總€(gè)詞牌中的字?jǐn)?shù)不相同,所以每篇宋詞中“中平仄”三種韻律出現(xiàn)的頻率也不相同。具體如圖1所示(編號(hào)為詞牌在《唐宋詞格律》[15]中出現(xiàn)的順序)。
2.3 隱寫算法
2.3.1 隱寫流程圖 本文方法的主要思想是利用詞牌韻律中“中平仄”的出現(xiàn)頻率對(duì)2取余數(shù)后的值對(duì)詞牌進(jìn)行編碼,不同的詞牌因?yàn)轫嵚芍小爸衅截啤背霈F(xiàn)頻率的不同就對(duì)應(yīng)了不同的編碼段,利用“中平仄”的奇偶性就可以找到秘密消息二進(jìn)制編碼段與宋詞詞牌之間的映射關(guān)系。發(fā)送秘密消息時(shí)將秘密消息轉(zhuǎn)換為二進(jìn)制,分段后根據(jù)秘密消息二進(jìn)制段與詞牌編碼進(jìn)行匹配,就可以搜索到編碼與其相同的宋詞詞牌集合,隨機(jī)選擇該詞牌集合中的一個(gè)詞牌下的一首宋詞,將所有的二進(jìn)制段都匹配成功以后可以得到一個(gè)包含全部被選宋詞的序列,通過公共信道展示該序列中的宋詞即可供接收方提取秘密消息,隱寫流程如圖2所示。
2.3.2 隱寫過程 預(yù)處理時(shí)統(tǒng)計(jì)詞牌韻律中“中平仄”的個(gè)數(shù)對(duì)2取余數(shù)得到每個(gè)詞牌可以代表的二進(jìn)制編碼,將其組成詞牌庫D。生成一個(gè)空的宋詞序列L,用來存放搜索獲得的宋詞。
3 實(shí)驗(yàn)
本文選取的詞牌和韻律為《唐宋詞格律》[17]中的全部詞牌及部分韻律。全本共包含了152個(gè)詞牌,對(duì)于所有的詞牌只選取其第一個(gè)出現(xiàn)的韻律。經(jīng)過統(tǒng)計(jì),在常見的152個(gè)詞牌中,每個(gè)編碼的詞牌個(gè)數(shù)如圖3所示。
假設(shè)發(fā)送的秘密消息為“你好”,其Unicode碼對(duì)應(yīng)二進(jìn)制為0100111101100000 0101100101111101,因其位數(shù)不是3的整倍數(shù),末尾補(bǔ)“0”變?yōu)?100111101100000 01011001011111010,按照每3 bits為一段的分段規(guī)則將其分段,得到二進(jìn)制子串序列010,011,110,110,000,001,011,001,011,111,010。根據(jù)二進(jìn)制子串搜索出編碼與其相同的詞牌集合,從每個(gè)詞牌集合中隨機(jī)選取一個(gè)詞牌,得到最終的詞牌集合{玉蝴蝶,朝中措,南歌子,少年游,臨江仙,鷓鴣天,行香子,金人捧露盤,雪梅香,六州歌頭,傷春怨},根據(jù)詞牌集合選取每個(gè)詞牌下的一首宋詞發(fā)送到公共信道、供接收方提取秘密消息,如網(wǎng)頁,微信公眾號(hào)等。
接收方首先將公共信道展示的宋詞按照順序添加到宋詞序列,然后按順序獲取宋詞序列中的詞牌組成新的詞牌序列{玉蝴蝶,朝中措,南歌子,少年游,臨江仙,鷓鴣天,行香子,金人捧露盤,雪梅香,六州歌頭,傷春怨}。根據(jù)每個(gè)詞牌中“中平仄”的奇偶性對(duì)詞牌進(jìn)行編碼,得到編碼序列{010,011,110,110,000,001,011,001,011,111,010},進(jìn)而得到有補(bǔ)“0”位的二進(jìn)制秘密消息010011110110000001011001011111010,因?yàn)槊孛芟⑥D(zhuǎn)換二進(jìn)制使用的是Unicode碼,所以二進(jìn)制秘密消息的位數(shù)應(yīng)為16的整倍數(shù),去掉補(bǔ)“0”位得到二進(jìn)制秘密消息01001111011000000101100101111101,對(duì)其做解碼操作得到秘密消息“你好”。
4 性能分析
(1) 隱寫成功率。宋詞詞牌的數(shù)量多達(dá)1 000多個(gè),有些詞牌的韻律還存在變格的情況導(dǎo)致“中平仄”的奇偶性發(fā)生變化,統(tǒng)計(jì)分析也證明了對(duì)于每一個(gè)3位的編碼段都存在足夠多的詞牌。因此,基于宋詞韻律的隱寫方法隱寫成功率為100%。
(2) 隱藏容量。因?yàn)槔玫氖撬卧~韻律中“中平仄”出現(xiàn)頻率的奇偶性,所以每個(gè)詞牌可以隱藏3 bits秘密消息,隱藏容量為3 bits/詞牌。
(3) 安全性。由搜索得到的宋詞與原始秘密消息無任何關(guān)聯(lián),并且是使用原始的宋詞進(jìn)行隱寫,沒有生成宋詞,因此在可讀性上要遠(yuǎn)超生成的宋詞。因?yàn)闆]有對(duì)宋詞文本進(jìn)行更改,所以語義檢測(cè)和統(tǒng)計(jì)檢測(cè)都無法檢測(cè)到秘密消息的存在,安全性高。
(4) 魯棒性。該方法具有良好的魯棒性,因?yàn)樗卧~詞牌的特殊性,一旦詞牌確定,其韻律就被確定,并且詞牌的數(shù)量是固定的,無法隨便生成新的詞牌,即使修改宋詞文本的內(nèi)容,也需要符合韻律規(guī)則,不會(huì)影響秘密消息的提取。
5 方法對(duì)比
目前文本隱寫主要分為修改載體和無載體的方法,其中修改載體法可以分為不基于語義的和基于語義的方法,無載體隱寫可分為生成法和檢索法。
文獻(xiàn)[4]中的SSE方法是一種不基于語義的修改載體法,通過修改字體的繁簡(jiǎn)體進(jìn)行隱寫,當(dāng)文章中的文字無法進(jìn)行修改時(shí)會(huì)導(dǎo)致嵌入失敗,隱藏容量為1 bit一字。此方法會(huì)導(dǎo)致同一個(gè)字在同一篇文章中出現(xiàn)不同的繁簡(jiǎn)體,很容易被懷疑,因此安全性低,并且對(duì)文本進(jìn)行“繁簡(jiǎn)體轉(zhuǎn)換”操作就可以破壞其隱藏的秘密消息,魯棒性差。
文獻(xiàn)[9]是一種基于語義的修改載體法,通過修改句子中“的”的個(gè)數(shù)進(jìn)行隱寫,當(dāng)文章句子中沒有可以修改的“的”時(shí)嵌入失敗,隱藏容量為1 bit一句。因修改后的載體與原載體差別不明顯,所以安全性要比SSE方法[4]高,但通過統(tǒng)計(jì)分析仍能發(fā)現(xiàn)其進(jìn)行了秘密消息的隱寫,而且進(jìn)行句式變換就可能導(dǎo)致秘密消息丟失,魯棒性差。
文獻(xiàn)[10]和文獻(xiàn)[12]屬于生成法,都是利用宋詞模板和字典庫生成新的宋詞來隱藏秘密消息,當(dāng)宋詞模板與秘密消息的二進(jìn)制無法匹配時(shí)嵌入失敗,隱藏容量因方法不同而不同,文獻(xiàn)[10]的隱藏容量為1.32 bits/字節(jié),文獻(xiàn)[12]的隱藏容量為1.6~2.3 bits/字節(jié)。這兩種方法生成的宋詞雖然符合宋詞模板的韻律,但是用詞僵硬,可讀性差,很容易被懷疑,因此安全性不高。一旦內(nèi)容被修改,就會(huì)導(dǎo)致秘密消息提取失敗,魯棒性差。
本文提出的方法屬于檢索法,通過利用詞牌中“中平仄”出現(xiàn)頻率的奇偶性進(jìn)行隱寫,未對(duì)載體進(jìn)行修改,隱藏容量為3 bits/詞牌。利用已有的宋詞作為載密文本,可讀性好,不會(huì)被懷疑,安全性高。即使修改了文本內(nèi)容也不會(huì)對(duì)秘密消息的提取造成影響,魯棒性強(qiáng)。
本文的方法與其他方法的對(duì)比情況如表1所示。
6 結(jié)論
本文利用宋詞韻律中“中平仄”出現(xiàn)頻率的奇偶性實(shí)現(xiàn)了一種無載體文本隱寫方法。通過詞牌韻律中“中平仄”出現(xiàn)頻率的奇偶性對(duì)詞牌進(jìn)行編碼,并通過搜索的方式找出載密宋詞。與現(xiàn)有方法相比具有隱寫成功率高,安全性好,魯棒性強(qiáng),不需要詞典庫的特點(diǎn)。下一步的研究方向著重提高方法的隱藏容量,如利用分闕或分句的方式,或者是韻律之間的組合關(guān)系,或者將待選文本擴(kuò)大到唐詩,楚辭和現(xiàn)代詩歌從而提高隱藏容量。
參考文獻(xiàn)
[1]吳國(guó)華,龔禮春,袁理鋒,等.中文文本信息隱藏研究進(jìn)展[J].通信學(xué)報(bào),2019,40(9):145-156.
[2]譚瑛.基于文本排版格式的信息隱藏方法比較研究[J].計(jì)算機(jī)與現(xiàn)代化,2013(6):52-56.
[3]MALIK A, SIKKA G, VERMA H K. A high capacity text steganography scheme based on huffman compression and color coding[J]. Journal of Information and Optimization Sciences,2017,38(5):647-664.
[4]孫新梅,孟朋,黃劉生.基于字體的中文信息隱藏算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(9):3063-3067.
[5]戴林洪.一種基于CSS屬性符號(hào)標(biāo)記的信息隱藏技術(shù)[J].信息與電腦(理論版),2019(15):43-44+47.
[6]崔光明,洪星,袁翔,等.基于不可見字符替換的信息隱藏方法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(4):277-280.
[7]MURPHY B, VOGEL C. The syntax of concealment: Reliable methods for plain text information hiding[C]// 9th Conference on Security, Steganigraphy, and Watermarking of Multimedia Contents, San Jose, 2007.
[8]甘燦,孫星明,劉玉玲,等.一種改進(jìn)的基于同義詞替換的中文文本信息隱藏方法[J].東南大學(xué)學(xué)報(bào)(自然科學(xué)版),2007(S1):137-140.
[9]趙敏之,孫星明,向華政.基于虛詞變換的自然語言信息隱藏算法研究[J].計(jì)算機(jī)工程與應(yīng)用,2006(3):158-160.
[10] 余振山,黃劉生,陳志立,等.用宋詞實(shí)現(xiàn)高嵌入率文本信息隱藏[J].中文信息學(xué)報(bào),2009,23(4):55-62.
[11] 屈琪鋒,劉彥辰,王箭,等.基于句式控制的宋詞載體文本信息隱藏技術(shù)研究[J].計(jì)算機(jī)與現(xiàn)代化,2017(8):91-97.
[12] 劉彥辰,王箭,屈琪鋒.混合加密的宋詞載體文本信息隱藏技術(shù)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2018,28(1):138-143.
[13] WU N, SHANG P L, FAN J, et al. Research on coverless text steganography based on single Bit Rules[J]. Journal of Physics: Conference Series. 2019, 1237(2) :022077.
[14] 于翔美,王開西.基于漢字筆畫編碼矩陣的文本隱寫方法[J].青島大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,32(2):43-47+54.
[15] 王建業(yè),郭振波,王開西.基于漢字?jǐn)?shù)學(xué)表達(dá)式的無載體文本隱寫方法[J].青島大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,32(1):81-86.
[16] 白璐.基于“唐詩宋詞”文本為載體的信息隱藏技術(shù)[J].計(jì)算機(jī)產(chǎn)品與流通,2018(6):93.
[17] 龍榆生.唐宋詞格律[M].上海:上海古籍出版社,2010.