一種利用全宋詞實(shí)現(xiàn)文本信息隱藏的技術(shù)的制作方法
【專利摘要】本發(fā)明提供了一種利用全宋詞來(lái)實(shí)現(xiàn)文本信息隱藏的技術(shù),屬于計(jì)算機(jī)領(lǐng)域中信息隱藏與數(shù)據(jù)安全方向。本發(fā)明首先利用宋詞這一特殊體裁文本,對(duì)全宋詞145個(gè)詞牌中的2538首長(zhǎng)度適中的宋詞進(jìn)行拆分和處理,生成了可用于隱蔽通訊的詞典庫(kù)。并在此基礎(chǔ)上,構(gòu)造出一套包括生成模板、詞典、隱寫(xiě)器、解碼器的信息隱藏系統(tǒng)。設(shè)計(jì)出可以針對(duì)不同語(yǔ)種的文本信息隱藏算法——“Song?Steg”。算法可以對(duì)傳輸方輸入的秘密信息進(jìn)行隱寫(xiě)處理,使得秘密信息隱藏在格調(diào)句式、字?jǐn)?shù)韻腳完全符合該詞牌的一首隱寫(xiě)宋詞中。本發(fā)明公開(kāi)的方法可以解決信道中傳輸數(shù)據(jù)的安全性問(wèn)題,可將秘密信息進(jìn)行隱寫(xiě)處理轉(zhuǎn)換為一首與正常宋詞無(wú)異的宋詞進(jìn)行傳輸,具有很強(qiáng)的實(shí)際應(yīng)用價(jià)值。
【專利說(shuō)明】
一種利用全宋詞實(shí)現(xiàn)文本信息隱藏的技術(shù)
技術(shù)領(lǐng)域
[0001] 本發(fā)明公開(kāi)了一種利用全宋詞實(shí)現(xiàn)文本信息隱藏的技術(shù),具體涉及一種使用宋詞 作為文本信息載體來(lái)嵌入秘密信息,在公開(kāi)信道中進(jìn)行隱蔽通信的一種技術(shù),屬于計(jì)算機(jī) 領(lǐng)域中信息隱藏與數(shù)據(jù)安全領(lǐng)域。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)和信息技術(shù)的飛速發(fā)展和日益普及,線上信息交流達(dá)到了前所未有的 深度和廣度。當(dāng)今社會(huì),電子郵件、微信等聊天軟件以及微博、博客等軟件因其方便可靠、BP 時(shí)快捷的特點(diǎn),已經(jīng)深深改變了當(dāng)今人們的生活方式。由于人們每天通過(guò)互聯(lián)網(wǎng)傳遞大量 文本數(shù)據(jù),使得利用文本數(shù)據(jù)進(jìn)行信息隱藏成為一種非常重要的秘密通信渠道,其私密信 息在傳輸過(guò)程中的安全性越來(lái)越引起重視。雖然加密技術(shù)可使得秘密信息在加密后傳輸, 但是監(jiān)測(cè)者或者攔截者仍可以通過(guò)截取密文進(jìn)行破譯,從而影響秘密信息的安全。相比下, 使用文本信息隱藏方法使攻擊者很難發(fā)現(xiàn)隱藏信息,既保證了信息的隱蔽性,又通過(guò)一定 的加密算法確保在網(wǎng)絡(luò)中的安全傳輸,故而在軍用信息、法律、知識(shí)產(chǎn)權(quán)保護(hù)和隱私保護(hù)中 得到了大量應(yīng)用。與圖像、視頻等載體相比,文本可提供冗余數(shù)據(jù)量很少,不便嵌入隱藏信 息。但因?yàn)槠湓诨ヂ?lián)網(wǎng)中存儲(chǔ)傳輸方便,占用空間少,用群體眾多等特點(diǎn),文本依然是信息 隱藏方案的首選。
[0003] 傳統(tǒng)的基于文本的信息隱藏算法基本上集中在幾個(gè)方向,分別是基于文本排版、 基于語(yǔ)法內(nèi)容、基于語(yǔ)義生成三種方法。從隱藏的方式來(lái)看,可以概括為以下三種情況:
[0004] 1.用文本字符在排版中的字間距、行間距、標(biāo)點(diǎn)符號(hào)混用和字符大小寫(xiě)等編碼位 置信息,來(lái)達(dá)到隱藏秘密信息的目的,文本主體含義不會(huì)有變化。它主要是利用人類視覺(jué)系 統(tǒng)(HVS,human vision System)的特點(diǎn),很難通過(guò)肉眼進(jìn)行辨別。行間距信息編碼,即將文 本的每一個(gè)段落進(jìn)行輕微的上移或下移,上移代表編碼"1",下移代表"〇"。字間距信息編 碼,是將文本中某個(gè)或多個(gè)字符進(jìn)行細(xì)微的水平移位,達(dá)到嵌入秘密信息的目的。
[0005] 2.將需要隱藏的信息,按照一定的規(guī)則將一段文本通過(guò)隱藏算法替換成另一端正 常的語(yǔ)言文字,又稱之為同義詞替換法。很多語(yǔ)言都存在同義詞和同音詞,把兩個(gè)同義詞相 互替換不會(huì)導(dǎo)致文本主旨信息改變。同時(shí),一旦增加同義詞庫(kù)容量,可供替換的意義相近同 義詞越多,就越不容易引起攻擊者懷疑,隱寫(xiě)生成的文本更加通順而自然。
[0006] 3.在保持整體文本語(yǔ)義不變的前提下,通過(guò)詞匯和短語(yǔ)的替換以及句法變換、句 子結(jié)構(gòu)改變來(lái)嵌入隱藏信息。代表性的軟件以Nicetext為首,通過(guò)隱藏算法控制文本風(fēng)格 模板和詞典使得生成文本更加自然。
[0007] 上述問(wèn)題可以概括為:文本排版方法雖然不改變文本內(nèi)容,但缺點(diǎn)是嵌入率很低, 嵌入方式單調(diào)且容易被機(jī)器檢測(cè),甚至可以通過(guò)逆向還原出隱藏信息,其魯棒性和安全性 很差。語(yǔ)法內(nèi)容和語(yǔ)義生成方法生成的隱寫(xiě)文本通常沒(méi)有完整意義,可讀性差,很容易令攻 擊者覺(jué)察到異常?,F(xiàn)有的幾款嵌入工具嵌入率低,通用性差,不足以進(jìn)行推廣和應(yīng)用。
[0008] 本發(fā)明專利關(guān)注如何安全、高效的實(shí)現(xiàn)秘密信息的隱蔽傳輸,針對(duì)現(xiàn)有的一些文 本信息隱藏算法,綜合嵌入率和隱匿性的雙重考慮,提供了一種借用全宋詞為載體,實(shí)現(xiàn)一 種秘密信息安全傳輸?shù)碾[藏算法,簡(jiǎn)稱為"Song-Steg"。主要概括如下:首先對(duì)大量宋詞進(jìn) 行拆分處理并生成詞典。使用宋詞的格調(diào)作為生成模板,選定《全宋詞》中145首篇幅長(zhǎng)短適 中的詞牌,對(duì)詞牌中符合格調(diào)的2538首宋詞進(jìn)行拆分,選用符合平仄韻律的詞語(yǔ)作為詞典, 詞典庫(kù)容量超過(guò)3萬(wàn)詞。其次設(shè)計(jì)出效率較高、可靠性強(qiáng)的隱寫(xiě)算法,可對(duì)不同語(yǔ)種的語(yǔ)言 進(jìn)行隱寫(xiě)處理。通過(guò)隱寫(xiě)器可以將秘密信息經(jīng)隱寫(xiě)處理,生成的載體文本是一篇詞牌、格調(diào) 以及長(zhǎng)度符合任一指定詞牌的宋詞,接收方可經(jīng)提取器還原秘密信息。最終生成出以一篇 和正常宋詞毫無(wú)區(qū)別的隱寫(xiě)宋詞。由于宋詞填詞和行文方法多變,生成的宋詞格調(diào)和句子 長(zhǎng)短、字?jǐn)?shù)等同于正常宋詞,讀起來(lái)朗朗上口,非常具有迷惑性,很難通過(guò)機(jī)器來(lái)進(jìn)行檢測(cè) 識(shí)別。經(jīng)測(cè)試,本方法的格調(diào)模板制定更加靈活多變,詞典庫(kù)容量大幅提高,在隱匿性以及 嵌入率有了大幅提升,信息嵌入率因格調(diào)模板不同,維持在20.6%-27.1%左右。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明從現(xiàn)實(shí)應(yīng)用中秘密信息的安全隱蔽傳輸?shù)慕嵌瘸霭l(fā),進(jìn)而發(fā)現(xiàn)了最為廣泛 應(yīng)用的文本信息隱藏技術(shù)中,往往存在著安全性差,嵌入率低,容易被逆向還原等問(wèn)題。為 了克服傳統(tǒng)文本信息隱藏技術(shù)在解決該問(wèn)題時(shí)的不足,本發(fā)明專利提供了一種利用全宋詞 來(lái)實(shí)現(xiàn)文本信息隱藏的方法,該方法可以高效且安全的對(duì)需要隱寫(xiě)的秘密信息進(jìn)行加工處 理,并可以使接收方很容易的對(duì)隱寫(xiě)宋詞進(jìn)行還原從而得到秘密信息,可以滿足用戶對(duì)數(shù) 據(jù)安全的需求。
[0010] 本發(fā)明專利為解決其技術(shù)問(wèn)題采用如下技術(shù)方案:
[0011] -種利用全宋詞實(shí)現(xiàn)文本信息隱藏的技術(shù),其特征在于,包括以下步驟:
[0012] 步驟一、首先針對(duì)不同詞牌的全部宋詞,制定其格調(diào)模板集合T,使用宋詞拆分算 法對(duì)輸入的全部宋詞依據(jù)格調(diào)模板進(jìn)行拆分,初步建立韻律詞典D,以供后續(xù)編碼、解碼時(shí) 使用。
[0013] 步驟二、對(duì)生成的韻律詞典進(jìn)行編碼生成,以及哈希重置,通過(guò)此方法刪除了每個(gè) 韻律詞典中重復(fù)的詞語(yǔ),加快了編碼時(shí)的查找速度,提高了效率并增加了安全性。
[0014] 步驟三、采用隱藏算法Song-Steg(),針對(duì)輸入的不同語(yǔ)種的秘密信息,在信息隱 藏的過(guò)程中將信息轉(zhuǎn)換為二進(jìn)制串的形式,根據(jù)格調(diào)模板在不同位置的劃分規(guī)定,將二進(jìn) 制串劃分成長(zhǎng)度不同的串并將其轉(zhuǎn)換成十進(jìn)制數(shù),后將十進(jìn)制數(shù)作為索引號(hào)于韻律詞典中 找到對(duì)應(yīng)的詞語(yǔ),按照對(duì)應(yīng)詞牌的格調(diào)模板位置填入,生成一篇完整的宋詞。
[0015] 步驟四、采用提取算法,對(duì)收到帶有隱寫(xiě)信息的宋詞按照格調(diào)模板T進(jìn)行劃分得到 每個(gè)位置的詞語(yǔ),對(duì)照詞典找出對(duì)應(yīng)詞語(yǔ)的位置信息,將十進(jìn)制的位置信息轉(zhuǎn)換為二進(jìn)制 串,并進(jìn)一步整合得到二進(jìn)制下的秘密信息,最后轉(zhuǎn)換得到原始的秘密信息。
[0016] 如所述步驟一中,對(duì)于選取的宋詞庫(kù),其韻律模板的制定方法是:首先選取宋詞這 種詩(shī)歌體裁中固有的格調(diào)模板作為文本生成模板,從《全宋詞》中選取長(zhǎng)短適中的宋詞集合 記為C,使該集合含有2538首宋詞。將每首宋詞按詞牌進(jìn)行分類,得到詞牌對(duì)應(yīng)的格調(diào)模板 集合T= {Ti | i = l,2,L n},對(duì)于符合指定格調(diào)Ti的宋詞集合記為Cj;。對(duì)于符合該格調(diào)模板 的宋詞集合記為=h|A = l,2,L 卜根據(jù)宋詞韻律特征,將"中灰"、"平平"、"中 平K"等韻律塊用集合R表示,即R= {Rj I j = l,2,L rhythmnum}。為便于使用機(jī)器進(jìn)行格調(diào) 模板制定和詞語(yǔ)拆分,我們使用數(shù)字來(lái)代替韻律,令韻律"平" =1,"仄" =2, "中" =3,每個(gè) 韻律塊之間用符號(hào)7"隔開(kāi),得到某個(gè)詞牌對(duì)應(yīng)格調(diào)模板,同時(shí)將待拆分的宋詞Ak去除全部 標(biāo)點(diǎn)符號(hào)及換行符。將處理過(guò)的詩(shī)詞輸入"IN.txt"文件內(nèi),將全部數(shù)字化處理過(guò)的格調(diào)模 板T輸入"FORMAT. txt"內(nèi)。對(duì)于已經(jīng)生成好的模板,宋詞拆分的方法是:使用詞語(yǔ)拆分算法 WordSplit()結(jié)合格調(diào)模板對(duì)全部宋詞進(jìn)行處理,將Cf.中的每一首宋詞A k劃分為詞語(yǔ)序列 (WkRl,WkR2,L WkRrhythmum),將符合同一韻律塊Rj的詞語(yǔ)WkRj放入詞典Dj中,初步形成韻律詞 典Dj = (wkRj |k=lL poemsnum),其中poemsnum代表某個(gè)詞牌下的宋詞數(shù)量,rhythmnum代表 類似"平平"等韻律塊的數(shù)量。
[0017] 如所述步驟二中,對(duì)于經(jīng)拆分得到的宋詞庫(kù),使用機(jī)器生成韻律詞典并進(jìn)行哈希 重置的過(guò)程和方法是:將詞典D按照每個(gè)韻律塊包含的全部詞語(yǔ)占據(jù)詞典一行進(jìn)行存儲(chǔ),Dj 代表韻律詞庫(kù)的一行,詞典h每行以詞語(yǔ)集合p 〇em[Wd來(lái)表示(W」代表韻律詞典第j行的詞 語(yǔ)個(gè)數(shù))。將詞典文檔全部?jī)?nèi)容以文件流的形式讀入,寫(xiě)入到詞典D的每個(gè)位置,以完成詞典 生成。設(shè)哈希函數(shù)為H0,針對(duì)詞典中的每詞進(jìn)行哈希重置,將每個(gè)詞語(yǔ)的MD5值進(jìn)行哈希處 理,并使用哈希值H(w 0rd)進(jìn)行排序,已完成詞典的重置。經(jīng)哈希處理后的詞典,在調(diào)用查找 時(shí)效率將大幅提高,便于隱寫(xiě)和提取過(guò)程中對(duì)詞語(yǔ)的查找。
[0018] 如所述步驟三中,在對(duì)用戶輸入的秘密信息進(jìn)行隱寫(xiě)操作時(shí),本發(fā)明采用分塊隱 藏的方式對(duì)隱寫(xiě)過(guò)程進(jìn)行優(yōu)化,對(duì)宋詞格調(diào)模板中不用長(zhǎng)度的劃分塊進(jìn)行分別編碼,確保 不同劃分塊可隱藏不同長(zhǎng)度的密文,不會(huì)造成空間的浪費(fèi)。得到詞典D和格調(diào)模板T之后,就 可以由秘密信息m經(jīng)隱寫(xiě)處理生成一篇宋詞。對(duì)于一個(gè)指定模板Ti,共有blocknum個(gè)韻律塊 劃分,對(duì)于劃分的每個(gè)位置K= {1L blocknum},與之對(duì)應(yīng)的韻律詞典行Dj中共有Wj個(gè)詞語(yǔ), 那么每個(gè)位置K至少能嵌入位比特信息,每個(gè)劃分塊可以容納的信息容量表達(dá)為 6/ocAra/^ =|jog^J。由于每個(gè)詞典行Dj詞語(yǔ)數(shù)量多少不一,則整首詞容量即為每個(gè)劃分位 置K的各自容量之和,可以表示為:
[0020] 上述公式表明,一篇隱藏宋詞可隱藏的秘密信息容量capacity等于各個(gè)劃分位置 K包含的信息容量之和,一篇宋詞可隱藏的秘密信息容量capacity與這篇宋詞的文本長(zhǎng)度 的比值即為秘密信息的嵌入率。算法在執(zhí)行過(guò)程中,首先是將輸入的秘密消息m,全部轉(zhuǎn)換 為二進(jìn)制編碼n/,如果二進(jìn)制編碼n/長(zhǎng)度不夠一篇隱寫(xiě)宋詞的容量capacity的話,則在n/ 的末尾補(bǔ)零。對(duì)于每個(gè)劃分塊的信息量長(zhǎng)度編以對(duì)應(yīng)長(zhǎng)度Len的二進(jìn)制編碼,令下個(gè)劃分塊 的長(zhǎng)度Len所表示的二進(jìn)制串為B,將B由二進(jìn)制轉(zhuǎn)換成十進(jìn)制n表示,令在韻律詞典第i個(gè)詞 word[ i]為n。最后將每個(gè)對(duì)應(yīng)位置的詞語(yǔ)word[ i]填入宋詞S中,最終輸出得到隱寫(xiě)宋詞。
[0021] 如所述步驟四中,生成的隱寫(xiě)宋詞S經(jīng)信道傳輸?shù)浇邮辗胶螅枰褂煤蛡鬏敺酵?樣的詞典D和格調(diào)模板T才能通過(guò)提取器和還原算法ExtractionO還原出秘密信息,由于詞 典生成中的去重操作,不會(huì)在因詞語(yǔ)重復(fù)而產(chǎn)生歧義。算法在執(zhí)行過(guò)程中,首先對(duì)于收到的 隱寫(xiě)宋詞S,對(duì)每個(gè)屬于韻律詞典D[rhythm]的詞語(yǔ)word進(jìn)行操作,如果隱寫(xiě)宋詞某個(gè)位置 的詞語(yǔ)blockword在詞典里面對(duì)應(yīng)第i個(gè)詞word[i],則將i賦值給k。將k轉(zhuǎn)換為一串對(duì)應(yīng)該 位置信息容量長(zhǎng)度的二進(jìn)制串k',并通過(guò)迭代生成二進(jìn)制秘密信息n/。最后將二進(jìn)制下的 秘密信息n/進(jìn)行還原并輸出,得到原始秘密信息m。
[0022] 本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效果:
[0023] (1)本發(fā)明從解決文本信息隱藏技術(shù)的隱匿性和嵌入率雙重角度出發(fā),進(jìn)而提出 了利用宋詞實(shí)現(xiàn)文本信息隱藏技術(shù)。在此基礎(chǔ)上,本發(fā)明提出了一種新的利用中華宋詞庫(kù) 的文本隱藏算法,選取了全宋詞中145個(gè)詞牌中的2538首長(zhǎng)度適中的宋詞,構(gòu)造了一套包括 生成模板、詞典、隱寫(xiě)器、解碼器的系統(tǒng),以實(shí)現(xiàn)信息傳輸雙方的隱蔽通信。
[0024] (2)本發(fā)明提出了一種可靠高效的詞典拆分算法,有效的將選取的2538首宋詞按 照格律模板進(jìn)行拆分,劃分成不同的韻律詞典,通過(guò)哈希重置刪除了重復(fù)詞語(yǔ),提高了詞典 查找速度。
[0025] (3)本發(fā)明提供了 一種高效文本信息隱藏算法--SongSteg算法。算法的實(shí)施過(guò) 程中,設(shè)計(jì)了秘密信息隱寫(xiě)算法和提取算法,可通過(guò)隱寫(xiě)器可以將秘密信息經(jīng)隱寫(xiě)處理,生 成的載體文本是一篇詞牌、格調(diào)以及長(zhǎng)度符合任一指定詞牌的宋詞,接收方可經(jīng)提取器還 原秘密信息。最終生成出以一篇和正常宋詞毫無(wú)區(qū)別的隱寫(xiě)宋詞。
[0026] (4)本發(fā)明提出了詞典建立的方法以及設(shè)計(jì)格調(diào)模板作為生成模板,詞典容量達(dá) 到30279詞,依據(jù)不同的格調(diào)模板,嵌入率最高達(dá)27.1%,超過(guò)了現(xiàn)有的一些文本信息隱藏 方法。
【附圖說(shuō)明】
[0027]圖1是本發(fā)明的整體結(jié)構(gòu)圖。
[0028]圖2是宋詞拆分與韻律詞典生成過(guò)程示意圖。
[0029]圖3是韻律詞典編碼示例圖。
[0030]圖4是秘密信息隱寫(xiě)過(guò)程的流程圖。
[0031 ]圖5是秘密信息提取過(guò)程的流程圖。
【具體實(shí)施方式】
[0032]為了解決文本信息隱藏嵌入秘密信息量少且隱匿性不高的問(wèn)題,本發(fā)明提供了一 種利用全宋詞實(shí)現(xiàn)文本信息隱藏的方法,其整體流程如圖1所示。
[0033]以下結(jié)合附圖和實(shí)施例對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步詳細(xì)說(shuō)明:
[0034] 實(shí)施例一
[0035] 本發(fā)明的實(shí)施例一介紹了通過(guò)宋詞格調(diào)模板來(lái)劃分宋詞并生成韻律詞典的過(guò)程, 該詞典保證了后續(xù)算法的有效執(zhí)行,具體步驟流程如圖2所示,包括:
[0036] (1)初始化全部宋詞庫(kù)記為集合C,不同詞牌下的格調(diào)模板記為集合T,韻律詞典集 合D
[0037] (2)對(duì)于每首在宋詞集合C中的宋詞poem和對(duì)應(yīng)的格調(diào)木板temp le進(jìn)行操作,
[0038] (3)如果第i個(gè)格調(diào)模板的詞牌名name和宋詞詞庫(kù)的某首宋詞詞牌名 poem.name相同,則將對(duì)應(yīng)的位置信息k進(jìn)行記錄。
[0039] (4)對(duì)于模板中的每一個(gè)位置劃分^,將這首宋詞位置為j的詞語(yǔ)w〇rd[j]添加入 韻律詞典D [ rhy thm ]中,rhy thm為這首宋詞在位置j對(duì)應(yīng)的韻律。
[0040] (5)將上述計(jì)算得到的韻律詞典D作為結(jié)果返回。
[0041] 例如,對(duì)于15首詞牌為《滿江紅》的宋詞,根據(jù)上述方法所描述的過(guò)程,算法將每首 宋詞對(duì)照《滿江紅》的格律模板進(jìn)行拆分,隨后對(duì)每個(gè)韻律詞典進(jìn)行編碼,具體如圖3所示。 該算法在輸入全部宋詞詞牌的格調(diào)模板和宋詞庫(kù)之后,可以一次對(duì)全部宋詞根據(jù)模板進(jìn)行 拆分而得到韻律詞庫(kù)。
[0042] 實(shí)施例二
[0043] 本發(fā)明的實(shí)施例二如圖4所示,介紹了在一首給定詞牌的宋詞中,對(duì)秘密信息進(jìn)行 隱寫(xiě)的過(guò)程。采用哈希重置過(guò)的詞典,在編碼提取中提高了效率,具體實(shí)現(xiàn)過(guò)程包括:
[0044] (1)初始化需要隱寫(xiě)的秘密信息為m,宋詞格調(diào)模板T,將每個(gè)位置需要填寫(xiě)詞語(yǔ)的 韻律塊Rj存進(jìn)模板T中。
[0045] (2)將輸入的秘密消息m全部轉(zhuǎn)換為二進(jìn)制編碼m'。如果m'的長(zhǎng)度不夠的話則在最 后一位補(bǔ)零。
[0046] (3)對(duì)于格調(diào)模板中每一個(gè)劃分塊,輸出該劃分塊對(duì)應(yīng)韻律詞典個(gè)數(shù)下的二進(jìn)制 位數(shù),將結(jié)果存入Len。
[0047] (4)將秘密信息下一個(gè)位置的信息容量長(zhǎng)度Len所表示的二進(jìn)制串存入B中。
[0048] (5)將二進(jìn)制串B轉(zhuǎn)化為十進(jìn)制數(shù)n。找到韻律詞典下序號(hào)為n的詞語(yǔ)w〇rd[i]。
[OO49 ] (6)將每個(gè)詞語(yǔ)word [ i ]填入宋詞S的每個(gè)位置。
[0050] (7)將上述計(jì)算得到的宋詞S作為結(jié)果返回。
[0051 ] 實(shí)施例三
[0052]本發(fā)明的實(shí)施例三如圖5所示,描述了生成的隱寫(xiě)宋詞S經(jīng)過(guò)信道傳輸?shù)浇邮辗?后,使用和傳輸方同樣的詞典D和格調(diào)模板T進(jìn)行還原并提取秘密信息。具體實(shí)現(xiàn)過(guò)程包括:
[0053] (1)初始化宋詞模板T,包含秘密信息的隱寫(xiě)宋詞S,經(jīng)還原得到的秘密信息m為空。
[0054] (2)對(duì)于在格調(diào)模板T下的每個(gè)劃分塊block和韻律詞典D[rhythm]下的詞語(yǔ)word, 如果詞典內(nèi)第i個(gè)詞語(yǔ)word[i]和生成宋詞這個(gè)位置的詞blockword-致,則輸出位置信息i 至Ijk中。
[0055] (3)將韻律詞典在位置j對(duì)應(yīng)的詞語(yǔ)個(gè)數(shù)對(duì)應(yīng)的二進(jìn)制編碼長(zhǎng)度輸出到Len中。
[0056] (4)將十進(jìn)制k轉(zhuǎn)換成一串長(zhǎng)度為該位置信息容量的二進(jìn)制串k'。
[0057] (5)迭代生產(chǎn)二進(jìn)制秘密信息m'。
[0058] (6)將二進(jìn)制下的秘密信息m'進(jìn)行還原得到原始秘密信息m。
[0059] (7)將上述計(jì)算得到的秘密信息m作為結(jié)果返回。
[0060] 例如,輸入隱藏的秘密信息為"夏日消溶,江河橫溢,人或?yàn)轸~(yú)鱉。千秋功罪,誰(shuí)人 曾與評(píng)說(shuō)? "時(shí),使用詞牌《永遇樂(lè)》作為模板生成的隱寫(xiě)宋詞為:
[0062]當(dāng)輸入的隱私信息為:"when i was young i/d listen to the radio waiting for my favorite songs"的時(shí)候,選用詞牌《滿江紅》生成的隱寫(xiě)宋詞為:
[0064]以上結(jié)合附圖以及三個(gè)實(shí)施例對(duì)本發(fā)明的實(shí)施方式作了詳細(xì)說(shuō)明,但是本發(fā)明并 不限于上述實(shí)施方式,在本領(lǐng)域普通技術(shù)人員所具備的知識(shí)范圍內(nèi),還可以在不脫離本發(fā) 明宗旨的前提下做出各種變化。
【主權(quán)項(xiàng)】
1. 一種利用全宋詞實(shí)現(xiàn)文本信息隱藏的技術(shù),其特征在于,包括以下步驟: 步驟一、首先針對(duì)不同詞牌的全部宋詞,制定其格調(diào)模板集合T,使用宋詞拆分算法對(duì) 輸入的全部宋詞依據(jù)格調(diào)模板進(jìn)行拆分,初步建立韻律詞典D,以供后續(xù)編碼、解碼時(shí)使用。 步驟二、對(duì)生成的韻律詞典進(jìn)行編碼生成,以及哈希重置,通過(guò)此方法刪除了每個(gè)韻律 詞典中重復(fù)的詞語(yǔ),加快了編碼時(shí)的查找速度,提高了效率并增加了安全性。 步驟三、采用隱藏算法Song-Steg(),針對(duì)輸入的不同語(yǔ)種的秘密信息,在信息隱藏的 過(guò)程中將信息轉(zhuǎn)換為二進(jìn)制串的形式,根據(jù)格調(diào)模板在不同位置的劃分規(guī)定,將二進(jìn)制串 劃分成長(zhǎng)度不同的串并將其轉(zhuǎn)換成十進(jìn)制數(shù),后將十進(jìn)制數(shù)作為索引號(hào)于韻律詞典中找到 對(duì)應(yīng)的詞語(yǔ),按照對(duì)應(yīng)詞牌的格調(diào)模板位置填入,生成一篇完整的宋詞。 步驟四、采用提取算法,對(duì)收到帶有隱寫(xiě)信息的宋詞按照格調(diào)模板T進(jìn)行劃分得到每個(gè) 位置的詞語(yǔ),對(duì)照詞典找出對(duì)應(yīng)詞語(yǔ)的位置信息,將十進(jìn)制的位置信息轉(zhuǎn)換為二進(jìn)制串,并 進(jìn)一步整合得到二進(jìn)制下的秘密信息,最后轉(zhuǎn)換得到原始的秘密信息。2. 如權(quán)利要求1所述的一種利用全宋詞實(shí)現(xiàn)文本信息隱藏的技術(shù),其特征在于使用機(jī) 器對(duì)全宋詞庫(kù)中選用宋詞進(jìn)行拆分和制定不同詞牌的格調(diào)模板時(shí),包括: 對(duì)于選取的宋詞庫(kù),其韻律模板的制定方法是:首先選取宋詞這種詩(shī)歌體裁中固有的 格調(diào)模板作為文本生成模板,從《全宋詞》中選取長(zhǎng)短適中的宋詞集合記為C,使該集合含有 2538首宋詞。將每首宋詞按詞牌進(jìn)行分類,得到詞牌對(duì)應(yīng)的格調(diào)模板集合T= {T」i = l,2, L n },對(duì)于符合指定格調(diào)T i的宋詞集合記為q。對(duì)于符合該格調(diào)模板的宋詞集合記為 q = ?[為=1,2,L 卜根據(jù)宋詞韻律特征,將"中仄"、"平平"、"中平灰"等韻律塊 用集合R表示,即R= {Rj I j = 1,2,L rhythmnum}。為便于使用機(jī)器進(jìn)行格調(diào)模板制定和詞語(yǔ) 拆分,我們使用數(shù)字來(lái)代替韻律,令韻律"平" =1,"仄" =2, "中" =3,每個(gè)韻律塊之間用符 號(hào)7"隔開(kāi),得到某個(gè)詞牌對(duì)應(yīng)格調(diào)模板,同時(shí)將待拆分的宋詞Ak去除全部標(biāo)點(diǎn)符號(hào)及換行 符。將處理過(guò)的詩(shī)詞輸入"IN. txt"文件內(nèi),將全部數(shù)字化處理過(guò)的格調(diào)模板Ti輸入 "FORMAT.txt"內(nèi)。對(duì)于已經(jīng)生成好的模板,宋詞拆分的方法是:使用詞語(yǔ)拆分算法 WordSplit()結(jié)合格調(diào)模板對(duì)全部宋詞進(jìn)行處理,將中的每一首宋詞Ak劃分為詞語(yǔ)序列 (WkRl,WkR2,L WkRrhythMum),,將符合同一韻律塊Rj的詞語(yǔ)WkRj放入詞典Dj中,初步形成韻律詞 典Dj = (wkRj |k=lL poemsnum),其中poemsnum代表某個(gè)詞牌下的宋詞數(shù)量,rhythmnum代表 類似"平平"等韻律塊的數(shù)量。3. 如權(quán)利要求1所述的一種利用全宋詞實(shí)現(xiàn)文本信息隱藏的技術(shù),其特征在于韻律詞 典的哈希重置與生成過(guò)程,包括: 對(duì)于經(jīng)拆分得到的宋詞庫(kù),使用機(jī)器生成韻律詞典并進(jìn)行哈希重置的過(guò)程和方法是: 將詞典D按照每個(gè)韻律塊包含的全部詞語(yǔ)占據(jù)詞典一行進(jìn)行存儲(chǔ),D」代表韻律詞庫(kù)的一行, 詞典h每行以詞語(yǔ)集合poemtWd來(lái)表示(W」代表韻律詞典第j行的詞語(yǔ)個(gè)數(shù))。將詞典文檔全 部?jī)?nèi)容以文件流的形式讀入,寫(xiě)入到詞典D的每個(gè)位置,以完成詞典生成。設(shè)哈希函數(shù)為H (),針對(duì)詞典中的每詞進(jìn)行哈希重置,將每個(gè)詞語(yǔ)的MD5值進(jìn)行哈希處理,并使用哈希值H (word)進(jìn)行排序,已完成詞典的重置。經(jīng)哈希處理后的詞典,在調(diào)用查找時(shí)效率將大幅提 高,便于隱寫(xiě)和提取過(guò)程中對(duì)詞語(yǔ)的查找。4. 如權(quán)利要求1所述的一種利用全宋詞實(shí)現(xiàn)文本信息隱藏的技術(shù),其特征在于秘密信 息隱寫(xiě)過(guò)程的實(shí)施,包括: 在對(duì)用戶輸入的秘密信息進(jìn)行隱寫(xiě)操作時(shí),本發(fā)明采用分塊隱藏的方式對(duì)隱寫(xiě)過(guò)程進(jìn) 行優(yōu)化,對(duì)宋詞格調(diào)模板中不用長(zhǎng)度的劃分塊進(jìn)行分別編碼,確保不同劃分塊可隱藏不同 長(zhǎng)度的密文,不會(huì)造成空間的浪費(fèi)。得到詞典D和格調(diào)模板T之后,就可以由秘密信息m經(jīng)隱 寫(xiě)處理生成一篇宋詞。對(duì)于一個(gè)指定模板Ti,共有blocknum個(gè)韻律塊劃分,對(duì)于劃分的每個(gè) 位置K = {1L b 1 ocknum},與之對(duì)應(yīng)的韻律詞典行Dj中共有Wj個(gè)詞語(yǔ),那么每個(gè)位置K至少能 嵌人位比特信息,每個(gè)劃分塊可以容納的信息容量表達(dá)為= [logU。由于 每個(gè)詞典行h詞語(yǔ)數(shù)量多少不一,則整首詞容量即為每個(gè)劃分位置K的各自容量之和,可以 表示為:上述公式表明,一篇隱藏宋詞可隱藏的秘密信息容量capacity等于各個(gè)劃分位置K包 含的信息容量之和,一篇宋詞可隱藏的秘密信息容量capacity與這篇宋詞的文本長(zhǎng)度的比 值即為秘密信息的嵌入率。算法在執(zhí)行過(guò)程中,首先是將輸入的秘密消息m,全部轉(zhuǎn)換為二 進(jìn)制編碼n/,如果二進(jìn)制編碼n/長(zhǎng)度不夠一篇隱寫(xiě)宋詞的容量capacity的話,則在n/的末 尾補(bǔ)零。對(duì)于每個(gè)劃分塊的信息量長(zhǎng)度編以對(duì)應(yīng)長(zhǎng)度Len的二進(jìn)制編碼,令下個(gè)劃分塊的長(zhǎng) 度Len所表示的二進(jìn)制串為B,將B由二進(jìn)制轉(zhuǎn)換成十進(jìn)制n表示,令在韻律詞典第i個(gè)詞word [i]為n。最后將每個(gè)對(duì)應(yīng)位置的詞語(yǔ)w〇rd[i]填入宋詞S中,最終輸出得到隱寫(xiě)宋詞。5.如權(quán)利要求1所述的一種利用全宋詞實(shí)現(xiàn)文本信息隱藏的技術(shù),其特征在于對(duì)收到 含有秘密信息的隱寫(xiě)宋詞進(jìn)行提取過(guò)程的實(shí)施,包括: 生成的隱寫(xiě)宋詞S經(jīng)信道傳輸?shù)浇邮辗胶?,需要使用和傳輸方同樣的詞典D和格調(diào)模板 T才能通過(guò)提取器和還原算法EXtracti〇n()還原出秘密信息,由于詞典生成中的去重操 作,不會(huì)在因詞語(yǔ)重復(fù)而產(chǎn)生歧義。算法在執(zhí)行過(guò)程中,首先對(duì)于收到的隱寫(xiě)宋詞S,對(duì)每個(gè) 屬于韻律詞典D [rhythm]的詞語(yǔ)word進(jìn)行操作,如果隱寫(xiě)宋詞某個(gè)位置的詞語(yǔ)blockword在 詞典里面對(duì)應(yīng)第i個(gè)詞word[i],則將i賦值給k。將k轉(zhuǎn)換為一串對(duì)應(yīng)該位置信息容量長(zhǎng)度的 二進(jìn)制串k',并通過(guò)迭代生成二進(jìn)制秘密信息n/。最后將二進(jìn)制下的秘密信息n/進(jìn)行還原 并輸出,得到原始秘密信息m。
【文檔編號(hào)】G06F17/27GK106055531SQ201610333285
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2016年5月17日
【發(fā)明人】王箭, 劉彥辰, 王智彬, 屈琪鋒, 于順
【申請(qǐng)人】南京航空航天大學(xué)