一种利用全宋词实现文本信息隐藏的技术的制作方法

文档序号:10687031阅读:181来源:国知局
一种利用全宋词实现文本信息隐藏的技术的制作方法
【专利摘要】本发明提供了一种利用全宋词来实现文本信息隐藏的技术,属于计算机领域中信息隐藏与数据安全方向。本发明首先利用宋词这一特殊体裁文本,对全宋词145个词牌中的2538首长度适中的宋词进行拆分和处理,生成了可用于隐蔽通讯的词典库。并在此基础上,构造出一套包括生成模板、词典、隐写器、解码器的信息隐藏系统。设计出可以针对不同语种的文本信息隐藏算法——“Song?Steg”。算法可以对传输方输入的秘密信息进行隐写处理,使得秘密信息隐藏在格调句式、字数韵脚完全符合该词牌的一首隐写宋词中。本发明公开的方法可以解决信道中传输数据的安全性问题,可将秘密信息进行隐写处理转换为一首与正常宋词无异的宋词进行传输,具有很强的实际应用价值。
【专利说明】
一种利用全宋词实现文本信息隐藏的技术
技术领域
[0001] 本发明公开了一种利用全宋词实现文本信息隐藏的技术,具体涉及一种使用宋词 作为文本信息载体来嵌入秘密信息,在公开信道中进行隐蔽通信的一种技术,属于计算机 领域中信息隐藏与数据安全领域。
【背景技术】
[0002] 随着互联网和信息技术的飞速发展和日益普及,线上信息交流达到了前所未有的 深度和广度。当今社会,电子邮件、微信等聊天软件以及微博、博客等软件因其方便可靠、BP 时快捷的特点,已经深深改变了当今人们的生活方式。由于人们每天通过互联网传递大量 文本数据,使得利用文本数据进行信息隐藏成为一种非常重要的秘密通信渠道,其私密信 息在传输过程中的安全性越来越引起重视。虽然加密技术可使得秘密信息在加密后传输, 但是监测者或者拦截者仍可以通过截取密文进行破译,从而影响秘密信息的安全。相比下, 使用文本信息隐藏方法使攻击者很难发现隐藏信息,既保证了信息的隐蔽性,又通过一定 的加密算法确保在网络中的安全传输,故而在军用信息、法律、知识产权保护和隐私保护中 得到了大量应用。与图像、视频等载体相比,文本可提供冗余数据量很少,不便嵌入隐藏信 息。但因为其在互联网中存储传输方便,占用空间少,用群体众多等特点,文本依然是信息 隐藏方案的首选。
[0003] 传统的基于文本的信息隐藏算法基本上集中在几个方向,分别是基于文本排版、 基于语法内容、基于语义生成三种方法。从隐藏的方式来看,可以概括为以下三种情况:
[0004] 1.用文本字符在排版中的字间距、行间距、标点符号混用和字符大小写等编码位 置信息,来达到隐藏秘密信息的目的,文本主体含义不会有变化。它主要是利用人类视觉系 统(HVS,human vision System)的特点,很难通过肉眼进行辨别。行间距信息编码,即将文 本的每一个段落进行轻微的上移或下移,上移代表编码"1",下移代表"〇"。字间距信息编 码,是将文本中某个或多个字符进行细微的水平移位,达到嵌入秘密信息的目的。
[0005] 2.将需要隐藏的信息,按照一定的规则将一段文本通过隐藏算法替换成另一端正 常的语言文字,又称之为同义词替换法。很多语言都存在同义词和同音词,把两个同义词相 互替换不会导致文本主旨信息改变。同时,一旦增加同义词库容量,可供替换的意义相近同 义词越多,就越不容易引起攻击者怀疑,隐写生成的文本更加通顺而自然。
[0006] 3.在保持整体文本语义不变的前提下,通过词汇和短语的替换以及句法变换、句 子结构改变来嵌入隐藏信息。代表性的软件以Nicetext为首,通过隐藏算法控制文本风格 模板和词典使得生成文本更加自然。
[0007] 上述问题可以概括为:文本排版方法虽然不改变文本内容,但缺点是嵌入率很低, 嵌入方式单调且容易被机器检测,甚至可以通过逆向还原出隐藏信息,其鲁棒性和安全性 很差。语法内容和语义生成方法生成的隐写文本通常没有完整意义,可读性差,很容易令攻 击者觉察到异常。现有的几款嵌入工具嵌入率低,通用性差,不足以进行推广和应用。
[0008] 本发明专利关注如何安全、高效的实现秘密信息的隐蔽传输,针对现有的一些文 本信息隐藏算法,综合嵌入率和隐匿性的双重考虑,提供了一种借用全宋词为载体,实现一 种秘密信息安全传输的隐藏算法,简称为"Song-Steg"。主要概括如下:首先对大量宋词进 行拆分处理并生成词典。使用宋词的格调作为生成模板,选定《全宋词》中145首篇幅长短适 中的词牌,对词牌中符合格调的2538首宋词进行拆分,选用符合平仄韵律的词语作为词典, 词典库容量超过3万词。其次设计出效率较高、可靠性强的隐写算法,可对不同语种的语言 进行隐写处理。通过隐写器可以将秘密信息经隐写处理,生成的载体文本是一篇词牌、格调 以及长度符合任一指定词牌的宋词,接收方可经提取器还原秘密信息。最终生成出以一篇 和正常宋词毫无区别的隐写宋词。由于宋词填词和行文方法多变,生成的宋词格调和句子 长短、字数等同于正常宋词,读起来朗朗上口,非常具有迷惑性,很难通过机器来进行检测 识别。经测试,本方法的格调模板制定更加灵活多变,词典库容量大幅提高,在隐匿性以及 嵌入率有了大幅提升,信息嵌入率因格调模板不同,维持在20.6%-27.1%左右。

【发明内容】

[0009] 本发明从现实应用中秘密信息的安全隐蔽传输的角度出发,进而发现了最为广泛 应用的文本信息隐藏技术中,往往存在着安全性差,嵌入率低,容易被逆向还原等问题。为 了克服传统文本信息隐藏技术在解决该问题时的不足,本发明专利提供了一种利用全宋词 来实现文本信息隐藏的方法,该方法可以高效且安全的对需要隐写的秘密信息进行加工处 理,并可以使接收方很容易的对隐写宋词进行还原从而得到秘密信息,可以满足用户对数 据安全的需求。
[0010] 本发明专利为解决其技术问题采用如下技术方案:
[0011] -种利用全宋词实现文本信息隐藏的技术,其特征在于,包括以下步骤:
[0012] 步骤一、首先针对不同词牌的全部宋词,制定其格调模板集合T,使用宋词拆分算 法对输入的全部宋词依据格调模板进行拆分,初步建立韵律词典D,以供后续编码、解码时 使用。
[0013] 步骤二、对生成的韵律词典进行编码生成,以及哈希重置,通过此方法删除了每个 韵律词典中重复的词语,加快了编码时的查找速度,提高了效率并增加了安全性。
[0014] 步骤三、采用隐藏算法Song-Steg(),针对输入的不同语种的秘密信息,在信息隐 藏的过程中将信息转换为二进制串的形式,根据格调模板在不同位置的划分规定,将二进 制串划分成长度不同的串并将其转换成十进制数,后将十进制数作为索引号于韵律词典中 找到对应的词语,按照对应词牌的格调模板位置填入,生成一篇完整的宋词。
[0015] 步骤四、采用提取算法,对收到带有隐写信息的宋词按照格调模板T进行划分得到 每个位置的词语,对照词典找出对应词语的位置信息,将十进制的位置信息转换为二进制 串,并进一步整合得到二进制下的秘密信息,最后转换得到原始的秘密信息。
[0016] 如所述步骤一中,对于选取的宋词库,其韵律模板的制定方法是:首先选取宋词这 种诗歌体裁中固有的格调模板作为文本生成模板,从《全宋词》中选取长短适中的宋词集合 记为C,使该集合含有2538首宋词。将每首宋词按词牌进行分类,得到词牌对应的格调模板 集合T= {Ti | i = l,2,L n},对于符合指定格调Ti的宋词集合记为Cj;。对于符合该格调模板 的宋词集合记为=h|A = l,2,L 卜根据宋词韵律特征,将"中灰"、"平平"、"中 平K"等韵律块用集合R表示,即R= {Rj I j = l,2,L rhythmnum}。为便于使用机器进行格调 模板制定和词语拆分,我们使用数字来代替韵律,令韵律"平" =1,"仄" =2, "中" =3,每个 韵律块之间用符号7"隔开,得到某个词牌对应格调模板,同时将待拆分的宋词Ak去除全部 标点符号及换行符。将处理过的诗词输入"IN.txt"文件内,将全部数字化处理过的格调模 板T输入"FORMAT. txt"内。对于已经生成好的模板,宋词拆分的方法是:使用词语拆分算法 WordSplit()结合格调模板对全部宋词进行处理,将Cf.中的每一首宋词A k划分为词语序列 (WkRl,WkR2,L WkRrhythmum),将符合同一韵律块Rj的词语WkRj放入词典Dj中,初步形成韵律词 典Dj = (wkRj |k=lL poemsnum),其中poemsnum代表某个词牌下的宋词数量,rhythmnum代表 类似"平平"等韵律块的数量。
[0017] 如所述步骤二中,对于经拆分得到的宋词库,使用机器生成韵律词典并进行哈希 重置的过程和方法是:将词典D按照每个韵律块包含的全部词语占据词典一行进行存储,Dj 代表韵律词库的一行,词典h每行以词语集合p 〇em[Wd来表示(W」代表韵律词典第j行的词 语个数)。将词典文档全部内容以文件流的形式读入,写入到词典D的每个位置,以完成词典 生成。设哈希函数为H0,针对词典中的每词进行哈希重置,将每个词语的MD5值进行哈希处 理,并使用哈希值H(w 0rd)进行排序,已完成词典的重置。经哈希处理后的词典,在调用查找 时效率将大幅提高,便于隐写和提取过程中对词语的查找。
[0018] 如所述步骤三中,在对用户输入的秘密信息进行隐写操作时,本发明采用分块隐 藏的方式对隐写过程进行优化,对宋词格调模板中不用长度的划分块进行分别编码,确保 不同划分块可隐藏不同长度的密文,不会造成空间的浪费。得到词典D和格调模板T之后,就 可以由秘密信息m经隐写处理生成一篇宋词。对于一个指定模板Ti,共有blocknum个韵律块 划分,对于划分的每个位置K= {1L blocknum},与之对应的韵律词典行Dj中共有Wj个词语, 那么每个位置K至少能嵌入位比特信息,每个划分块可以容纳的信息容量表达为 6/ocAra/^ =|jog^J。由于每个词典行Dj词语数量多少不一,则整首词容量即为每个划分位 置K的各自容量之和,可以表示为:
[0020] 上述公式表明,一篇隐藏宋词可隐藏的秘密信息容量capacity等于各个划分位置 K包含的信息容量之和,一篇宋词可隐藏的秘密信息容量capacity与这篇宋词的文本长度 的比值即为秘密信息的嵌入率。算法在执行过程中,首先是将输入的秘密消息m,全部转换 为二进制编码n/,如果二进制编码n/长度不够一篇隐写宋词的容量capacity的话,则在n/ 的末尾补零。对于每个划分块的信息量长度编以对应长度Len的二进制编码,令下个划分块 的长度Len所表示的二进制串为B,将B由二进制转换成十进制n表示,令在韵律词典第i个词 word[ i]为n。最后将每个对应位置的词语word[ i]填入宋词S中,最终输出得到隐写宋词。
[0021] 如所述步骤四中,生成的隐写宋词S经信道传输到接收方后,需要使用和传输方同 样的词典D和格调模板T才能通过提取器和还原算法ExtractionO还原出秘密信息,由于词 典生成中的去重操作,不会在因词语重复而产生歧义。算法在执行过程中,首先对于收到的 隐写宋词S,对每个属于韵律词典D[rhythm]的词语word进行操作,如果隐写宋词某个位置 的词语blockword在词典里面对应第i个词word[i],则将i赋值给k。将k转换为一串对应该 位置信息容量长度的二进制串k',并通过迭代生成二进制秘密信息n/。最后将二进制下的 秘密信息n/进行还原并输出,得到原始秘密信息m。
[0022] 本发明采用以上技术方案与现有技术相比,具有以下有益效果:
[0023] (1)本发明从解决文本信息隐藏技术的隐匿性和嵌入率双重角度出发,进而提出 了利用宋词实现文本信息隐藏技术。在此基础上,本发明提出了一种新的利用中华宋词库 的文本隐藏算法,选取了全宋词中145个词牌中的2538首长度适中的宋词,构造了一套包括 生成模板、词典、隐写器、解码器的系统,以实现信息传输双方的隐蔽通信。
[0024] (2)本发明提出了一种可靠高效的词典拆分算法,有效的将选取的2538首宋词按 照格律模板进行拆分,划分成不同的韵律词典,通过哈希重置删除了重复词语,提高了词典 查找速度。
[0025] (3)本发明提供了 一种高效文本信息隐藏算法--SongSteg算法。算法的实施过 程中,设计了秘密信息隐写算法和提取算法,可通过隐写器可以将秘密信息经隐写处理,生 成的载体文本是一篇词牌、格调以及长度符合任一指定词牌的宋词,接收方可经提取器还 原秘密信息。最终生成出以一篇和正常宋词毫无区别的隐写宋词。
[0026] (4)本发明提出了词典建立的方法以及设计格调模板作为生成模板,词典容量达 到30279词,依据不同的格调模板,嵌入率最高达27.1%,超过了现有的一些文本信息隐藏 方法。
【附图说明】
[0027]图1是本发明的整体结构图。
[0028]图2是宋词拆分与韵律词典生成过程示意图。
[0029]图3是韵律词典编码示例图。
[0030]图4是秘密信息隐写过程的流程图。
[0031 ]图5是秘密信息提取过程的流程图。
【具体实施方式】
[0032]为了解决文本信息隐藏嵌入秘密信息量少且隐匿性不高的问题,本发明提供了一 种利用全宋词实现文本信息隐藏的方法,其整体流程如图1所示。
[0033]以下结合附图和实施例对本发明的技术方案做进一步详细说明:
[0034] 实施例一
[0035] 本发明的实施例一介绍了通过宋词格调模板来划分宋词并生成韵律词典的过程, 该词典保证了后续算法的有效执行,具体步骤流程如图2所示,包括:
[0036] (1)初始化全部宋词库记为集合C,不同词牌下的格调模板记为集合T,韵律词典集 合D
[0037] (2)对于每首在宋词集合C中的宋词poem和对应的格调木板temp le进行操作,
[0038] (3)如果第i个格调模板的词牌名name和宋词词库的某首宋词词牌名 poem.name相同,则将对应的位置信息k进行记录。
[0039] (4)对于模板中的每一个位置划分^,将这首宋词位置为j的词语w〇rd[j]添加入 韵律词典D [ rhy thm ]中,rhy thm为这首宋词在位置j对应的韵律。
[0040] (5)将上述计算得到的韵律词典D作为结果返回。
[0041] 例如,对于15首词牌为《满江红》的宋词,根据上述方法所描述的过程,算法将每首 宋词对照《满江红》的格律模板进行拆分,随后对每个韵律词典进行编码,具体如图3所示。 该算法在输入全部宋词词牌的格调模板和宋词库之后,可以一次对全部宋词根据模板进行 拆分而得到韵律词库。
[0042] 实施例二
[0043] 本发明的实施例二如图4所示,介绍了在一首给定词牌的宋词中,对秘密信息进行 隐写的过程。采用哈希重置过的词典,在编码提取中提高了效率,具体实现过程包括:
[0044] (1)初始化需要隐写的秘密信息为m,宋词格调模板T,将每个位置需要填写词语的 韵律块Rj存进模板T中。
[0045] (2)将输入的秘密消息m全部转换为二进制编码m'。如果m'的长度不够的话则在最 后一位补零。
[0046] (3)对于格调模板中每一个划分块,输出该划分块对应韵律词典个数下的二进制 位数,将结果存入Len。
[0047] (4)将秘密信息下一个位置的信息容量长度Len所表示的二进制串存入B中。
[0048] (5)将二进制串B转化为十进制数n。找到韵律词典下序号为n的词语w〇rd[i]。
[OO49 ] (6)将每个词语word [ i ]填入宋词S的每个位置。
[0050] (7)将上述计算得到的宋词S作为结果返回。
[0051 ] 实施例三
[0052]本发明的实施例三如图5所示,描述了生成的隐写宋词S经过信道传输到接收方 后,使用和传输方同样的词典D和格调模板T进行还原并提取秘密信息。具体实现过程包括:
[0053] (1)初始化宋词模板T,包含秘密信息的隐写宋词S,经还原得到的秘密信息m为空。
[0054] (2)对于在格调模板T下的每个划分块block和韵律词典D[rhythm]下的词语word, 如果词典内第i个词语word[i]和生成宋词这个位置的词blockword-致,则输出位置信息i 至Ijk中。
[0055] (3)将韵律词典在位置j对应的词语个数对应的二进制编码长度输出到Len中。
[0056] (4)将十进制k转换成一串长度为该位置信息容量的二进制串k'。
[0057] (5)迭代生产二进制秘密信息m'。
[0058] (6)将二进制下的秘密信息m'进行还原得到原始秘密信息m。
[0059] (7)将上述计算得到的秘密信息m作为结果返回。
[0060] 例如,输入隐藏的秘密信息为"夏日消溶,江河横溢,人或为鱼鳖。千秋功罪,谁人 曾与评说? "时,使用词牌《永遇乐》作为模板生成的隐写宋词为:
[0062]当输入的隐私信息为:"when i was young i/d listen to the radio waiting for my favorite songs"的时候,选用词牌《满江红》生成的隐写宋词为:
[0064]以上结合附图以及三个实施例对本发明的实施方式作了详细说明,但是本发明并 不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发 明宗旨的前提下做出各种变化。
【主权项】
1. 一种利用全宋词实现文本信息隐藏的技术,其特征在于,包括以下步骤: 步骤一、首先针对不同词牌的全部宋词,制定其格调模板集合T,使用宋词拆分算法对 输入的全部宋词依据格调模板进行拆分,初步建立韵律词典D,以供后续编码、解码时使用。 步骤二、对生成的韵律词典进行编码生成,以及哈希重置,通过此方法删除了每个韵律 词典中重复的词语,加快了编码时的查找速度,提高了效率并增加了安全性。 步骤三、采用隐藏算法Song-Steg(),针对输入的不同语种的秘密信息,在信息隐藏的 过程中将信息转换为二进制串的形式,根据格调模板在不同位置的划分规定,将二进制串 划分成长度不同的串并将其转换成十进制数,后将十进制数作为索引号于韵律词典中找到 对应的词语,按照对应词牌的格调模板位置填入,生成一篇完整的宋词。 步骤四、采用提取算法,对收到带有隐写信息的宋词按照格调模板T进行划分得到每个 位置的词语,对照词典找出对应词语的位置信息,将十进制的位置信息转换为二进制串,并 进一步整合得到二进制下的秘密信息,最后转换得到原始的秘密信息。2. 如权利要求1所述的一种利用全宋词实现文本信息隐藏的技术,其特征在于使用机 器对全宋词库中选用宋词进行拆分和制定不同词牌的格调模板时,包括: 对于选取的宋词库,其韵律模板的制定方法是:首先选取宋词这种诗歌体裁中固有的 格调模板作为文本生成模板,从《全宋词》中选取长短适中的宋词集合记为C,使该集合含有 2538首宋词。将每首宋词按词牌进行分类,得到词牌对应的格调模板集合T= {T」i = l,2, L n },对于符合指定格调T i的宋词集合记为q。对于符合该格调模板的宋词集合记为 q = ?[為=1,2,L 卜根据宋词韵律特征,将"中仄"、"平平"、"中平灰"等韵律块 用集合R表示,即R= {Rj I j = 1,2,L rhythmnum}。为便于使用机器进行格调模板制定和词语 拆分,我们使用数字来代替韵律,令韵律"平" =1,"仄" =2, "中" =3,每个韵律块之间用符 号7"隔开,得到某个词牌对应格调模板,同时将待拆分的宋词Ak去除全部标点符号及换行 符。将处理过的诗词输入"IN. txt"文件内,将全部数字化处理过的格调模板Ti输入 "FORMAT.txt"内。对于已经生成好的模板,宋词拆分的方法是:使用词语拆分算法 WordSplit()结合格调模板对全部宋词进行处理,将中的每一首宋词Ak划分为词语序列 (WkRl,WkR2,L WkRrhythMum),,将符合同一韵律块Rj的词语WkRj放入词典Dj中,初步形成韵律词 典Dj = (wkRj |k=lL poemsnum),其中poemsnum代表某个词牌下的宋词数量,rhythmnum代表 类似"平平"等韵律块的数量。3. 如权利要求1所述的一种利用全宋词实现文本信息隐藏的技术,其特征在于韵律词 典的哈希重置与生成过程,包括: 对于经拆分得到的宋词库,使用机器生成韵律词典并进行哈希重置的过程和方法是: 将词典D按照每个韵律块包含的全部词语占据词典一行进行存储,D」代表韵律词库的一行, 词典h每行以词语集合poemtWd来表示(W」代表韵律词典第j行的词语个数)。将词典文档全 部内容以文件流的形式读入,写入到词典D的每个位置,以完成词典生成。设哈希函数为H (),针对词典中的每词进行哈希重置,将每个词语的MD5值进行哈希处理,并使用哈希值H (word)进行排序,已完成词典的重置。经哈希处理后的词典,在调用查找时效率将大幅提 高,便于隐写和提取过程中对词语的查找。4. 如权利要求1所述的一种利用全宋词实现文本信息隐藏的技术,其特征在于秘密信 息隐写过程的实施,包括: 在对用户输入的秘密信息进行隐写操作时,本发明采用分块隐藏的方式对隐写过程进 行优化,对宋词格调模板中不用长度的划分块进行分别编码,确保不同划分块可隐藏不同 长度的密文,不会造成空间的浪费。得到词典D和格调模板T之后,就可以由秘密信息m经隐 写处理生成一篇宋词。对于一个指定模板Ti,共有blocknum个韵律块划分,对于划分的每个 位置K = {1L b 1 ocknum},与之对应的韵律词典行Dj中共有Wj个词语,那么每个位置K至少能 嵌人位比特信息,每个划分块可以容纳的信息容量表达为= [logU。由于 每个词典行h词语数量多少不一,则整首词容量即为每个划分位置K的各自容量之和,可以 表示为:上述公式表明,一篇隐藏宋词可隐藏的秘密信息容量capacity等于各个划分位置K包 含的信息容量之和,一篇宋词可隐藏的秘密信息容量capacity与这篇宋词的文本长度的比 值即为秘密信息的嵌入率。算法在执行过程中,首先是将输入的秘密消息m,全部转换为二 进制编码n/,如果二进制编码n/长度不够一篇隐写宋词的容量capacity的话,则在n/的末 尾补零。对于每个划分块的信息量长度编以对应长度Len的二进制编码,令下个划分块的长 度Len所表示的二进制串为B,将B由二进制转换成十进制n表示,令在韵律词典第i个词word [i]为n。最后将每个对应位置的词语w〇rd[i]填入宋词S中,最终输出得到隐写宋词。5.如权利要求1所述的一种利用全宋词实现文本信息隐藏的技术,其特征在于对收到 含有秘密信息的隐写宋词进行提取过程的实施,包括: 生成的隐写宋词S经信道传输到接收方后,需要使用和传输方同样的词典D和格调模板 T才能通过提取器和还原算法EXtracti〇n()还原出秘密信息,由于词典生成中的去重操 作,不会在因词语重复而产生歧义。算法在执行过程中,首先对于收到的隐写宋词S,对每个 属于韵律词典D [rhythm]的词语word进行操作,如果隐写宋词某个位置的词语blockword在 词典里面对应第i个词word[i],则将i赋值给k。将k转换为一串对应该位置信息容量长度的 二进制串k',并通过迭代生成二进制秘密信息n/。最后将二进制下的秘密信息n/进行还原 并输出,得到原始秘密信息m。
【文档编号】G06F17/27GK106055531SQ201610333285
【公开日】2016年10月26日
【申请日】2016年5月17日
【发明人】王箭, 刘彦辰, 王智彬, 屈琪锋, 于顺
【申请人】南京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1