CN102682248A - 一种中文超短文本的水印嵌入和提取方法 - Google Patents
一种中文超短文本的水印嵌入和提取方法 Download PDFInfo
- Publication number
- CN102682248A CN102682248A CN2012101486200A CN201210148620A CN102682248A CN 102682248 A CN102682248 A CN 102682248A CN 2012101486200 A CN2012101486200 A CN 2012101486200A CN 201210148620 A CN201210148620 A CN 201210148620A CN 102682248 A CN102682248 A CN 102682248A
- Authority
- CN
- China
- Prior art keywords
- unit
- embedding
- word
- embeds
- text
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种中文超短文本的水印嵌入和提取方法,该方法包括嵌入和提取两个过程,嵌入过程包括嵌入单元的识别和秘密信息的嵌入两个阶段,提取过程包括嵌入单元的识别、和秘密信息的提取和水印验证三个阶段;其中,两个过程中的嵌入单元的识别操作相同。而在编码方面针对同义词嵌入单元采用容量最优化——混合进制编码,针对“的”、“了”字片段采用扩频编码,充分利用每一个嵌入单元,大大提高了超短文本的隐藏容量。在提取水印信息时,采用水印验证技术来分析待检测文本是否是经过嵌入处理的文本,有效地降低了提取水印信息时的虚警率。
Description
技术领域
本发明涉及自然语言信息隐藏技术领域,具体涉及一种中文超短文本的水印嵌入和提取方法。
背景技术
随着计算机网络的快速发展和普及,数字著作在因特网中扮演的角色也越来越重要,它将人们引入了一个崭新的世界。对于数字著作而言,数字化后的数据显然比传统时代的数据更具优势和吸引力,比如便于编辑、储存、发布和共享。由于对数字信息的复制非常容易,而且所得复制品和原件完全相同,因此有恶意的个人或团体有可能在没有得到作品所有者许可的情况下复制、窜改、传播有版权的内容,甚至非法用作商业用处,严重侵犯了作者及版权所有者的利益,并且导致了越来越多的版权纠纷。
超短文本是指字数在80字至500字的文本文档,例如通讯稿、微博、点评等。这些超短文本被人们在网络中使用的频率越来越高,使用范围也越来越广。例如,网络中有这样一些点评网站,它们致力于为网友提供餐饮、购物、休闲娱乐及生活服务等领域的商户信息、消费优惠以及发布消费评价的互动平台。这些点评网站中,几乎所有的信息都来源于大众,每个人都可以自由发表对商家的评论,好则誉之,差则贬之,每个人都可以向大家分享自己的消费心得,同时分享大家集体的智慧。为维持平台的核心竞争力,就必须保持点评数据的真实准确,具有参考价值,以及点评的客观公正。然而,这些网站中的某些核心点评,可能会被其他网站盗用。如果没有办法对用户发表的内容进行版权归属的判定,很容易造成点评的版权纠纷,甚至会承担了侵权的连带责任。目前,越来越多的网站开通了微博功能,使得用户在网络中发表言论越来越自由,而用户发表的言论也很容易被其他人复制甚至歪曲,如何没有办法来判定这些微博的版权以及是否被人修改歪曲,很容易造成版权纠纷,甚至会带来法律问题。除了以上点评和微博的举例,超短文本还在网络中其他的地方广泛用到,对其版权处理不当,可能会到来巨大的损失,因而,如何有效地保护这些超短文本的版权成为了一个迫在眉睫的现实问题。
自然语言信息隐藏使用自然语言作为隐藏秘密信息的载体,利用保留语义的变换等方法改写文字,在载体中嵌入秘密信息。它作为文本信息保护的一种重要方法,越来越受到人们的关注。但是,现有的自然语言信息隐藏技术对载体文本的容量有着相当高的要求,而在进行秘密信息嵌入时,根据载体文本的篇幅长短以及行文风格不同,文本能够为信息隐藏技术提供的隐藏空间也不一样。如在版权保护领域,通讯稿、微博、评论、点评等这些超短文本,能够提供的容量非常有限,这就使得在这些超短文本当中嵌入版权信息变得不太现实。所以如何在超短文本当中最大量的嵌入版权信息,具有十分重要的意义。
发明内容
本发明的目的在于,提供一种中文超短文本的水印嵌入和提取方法,该方法在对超短文本进行版权信息保护时,在不影响原内容的价值和使用,并且能够不引起人们的注意的情况下,在超短文本内尽可能嵌入最大的秘密信息。
为了实现上述任务,本发明采用了如下的技术解决方案:
一种中文超短文本的水印嵌入和提取方法,包括嵌入和提取两个过程,其特征在于,所述的嵌入过程包括嵌入单元的识别和秘密信息的嵌入两个阶段,提取过程包括嵌入单元的识别、秘密信息的提取和水印验证三个阶段;其中,两个过程中的嵌入单元的识别操作相同。
所述的嵌入单元的识别包括以下几个步骤:
步骤1:文本繁简体转换:
待嵌密的文本中可能存在繁体字,而繁体字会影响到后续的嵌入单元识别,因而在处理之前需先根据繁简对照表将文本中的繁体字转换为相对应的简体字。
步骤2:以文本中的标点符号作为分界符将文本划分成多个分句,同时对每一个分句进行分词,并将小句内容和分词后的结果记录下来。
步骤3:取出一个小句中的一个词语,判断其是否位于专有名词词典中。如果在词典中,则继续步骤3中的下一个词语,否则,转至步骤4。
步骤4:判断词语是否位于同义词词典当中,如果在,则将此词语的信息记录在准嵌入单元集合当中;如果不在,转至步骤5。
步骤5:判断词语是否位于高频词词典当中,如果在,则将此词语的信息记录在准嵌入单元集合当中;如果不在,转回步骤3。
步骤6:嵌入单元预替换:
嵌入单元的预替换是在分句的基础上进行的,当一个分句中的所有词语都进行完准嵌入单元的识别后,在分句上对分句中所有的准嵌入单元进行预替换;通过采用中国专利201110122787.5中的步骤,将那些替换前后分词与原句一样的准嵌入单元确认为理想嵌入单元,并将其记录至嵌入单元集合当中;
步骤7:所有分句中的准嵌入单元都进行完嵌入单元预替换后,依据密钥对嵌入单元集合当中的嵌入单元进行排序。
步骤8:判断嵌入单元集合的容量是否满足嵌入秘密信息所需的容量。如果嵌入单元集合的容量满足所需容量,则嵌入单元的识别终止;否则,转至步骤9。
步骤9:依据密钥对超短文本的所有分句进行排序,每4个分句划分为一个“的”字片段,并记录下每一个片段中的分句序号。“的”字片段的最大数目应为嵌入秘密信息所需容量与同义词嵌入单元的容量之差。
步骤10:判断嵌入单元集合的容量与“的”字片段的容量之和是否满足嵌入秘密信息所需的容量。如果满足所需容量,则嵌入单元的识别终止;否则,转至步骤11。
步骤11:依据步骤9中排好序的分句,进行“了”字片段的划分,并记录下每一个片段中的分句序号。“了”字片段中的分句数可以根据需求来设定,默认为3个分句为一个“了”字片段。
步骤12:判断嵌入单元集合的容量与“的”字片段的容量和“了”字片段的容量之和是否满足嵌入秘密信息所需的容量,如果满足所需容量,则嵌入单元的识别终止;否则,提示“嵌入单元不足,无法嵌入秘密信息”。
秘密信息的嵌入包括以下几个步骤:
步骤1:将嵌入单元识别步骤里排序好的顺序对同义词嵌入单元集合使用混合进制编码计算出每一嵌入单元的比特值。
步骤2:取出一个分句中的一个词语,判断是否与嵌入单元集合当中当前的嵌入单元内容以及所在小句是否匹配,如果不匹配,则继续步骤2;否则,转至步骤3。
步骤3:依据比特串当前的比特值对嵌入单元的内容进行替换,在替换的时候,因为同义词集合当中存在着繁体字的同义词,因而替换后的文本当中就有可能存在着繁体字。同时,比特串及嵌入单元集合的索引加1,并转至步骤2。
步骤4:待所有嵌入单元都已替换完毕,判断“的”字片段嵌入单元的个数是否为0。如果为0,则水印信息的嵌入过程完成,返回含密文本;如果不为0,则转至步骤5。
步骤5:使用扩频编码对“的”字片段嵌入单元进行编码以及秘密信息的嵌入。“的”字片段的扩频编码参考了赵敏之等《基于虚词变换的自然语言信息隐藏算法研究》2.2节里的文本隐藏算法,详细操作流程参照图10,并在此算法的基础上稍作修改进行实现。“的”字片段扩频算法的首先应该对文本中的句子进行片段划分,此过程已于嵌入单元识别过程中的步骤9中实现。在分好的“的”字片段中,首先依据规则计算每一个“的”字片段中可删除“的”的位置,并将分句序号及删除“的”后的句子记录下来。然后计算片段中“的”的个数,并规定“的”个数为奇数时,表示比特0,为偶数时,表示比特1。根据需嵌入的比特值来改变片段中“的”的数目以达到嵌密的目的。改变“的”数目需遵守的规则是“先删除,后增加”。也就是说,片段中有可删除“的”的分句,就进行删除操作,如果有多个分句可以删除,就随机选择一个进行操作。如果分句中没有分句可以进行删除操作,则进行“的”的增加操作,增加操作与删除操作类似。如果片段中既没有可删除“的”的分句,也没有可增加“的”的分句,则提示“嵌入单元不足,无法正确嵌入秘密信息”。
步骤6:待所有“的”字片段嵌入单元都已替换完毕,判断“了”字片段嵌入单元的个数是否为0。如果为0,则水印信息的嵌入过程完成,返回含密文本;如果不为0,则转至步骤7。
步骤7:“了”字片段嵌入单元秘密信息的嵌入。“了”字片段的扩频算法也是在“的”字片段扩频算法上的修改。“了”字片段秘密信息的嵌入与“的”字片段秘密信息的嵌入相同。
步骤8:待所有“了”字片段嵌入单元都已替换完毕,则水印信息的嵌入过程完成,返回含密文本。
秘密信息的提取包括以下几个步骤:
步骤1:依次对照嵌入单元识别步骤中识别出来的同义词嵌入单元找出其在超短文本中的位置,即索引号,并将其记录下来。
步骤2:依据简体文本中的嵌入单元的索引号在原始文本中找出每一个嵌入单元,并与简体文本中的嵌入单元一一对应的记录下来。
步骤3:取出一个分句中的一个词语,判断是否与嵌入单元集合当中当前的嵌入单元内容以及所在小句是否匹配,如果不匹配,则继续步骤3中的下一个词语;否则,转至步骤4。
步骤4:取出词语对应的原始文本中的词语,在当前嵌入单元集合中的嵌入单元的同义词中查找词语的索引号,所得出的索引号即是此词语的比特值。嵌入单元的索引加1,并转至步骤3。
步骤5:待所有嵌入单元的比特值都提取出来后,将比特串按照嵌入单元的逻辑顺序进行排序,并以逻辑顺序将比特串恢复成整数。
步骤6:判断“的”字片段嵌入单元的个数是否为0,如果为0,则秘密信息的提取完成,转至步骤10;如果不为0,转至步骤7。
步骤7:计算每一个“的”字片段中“的”的个数,如果为偶数,则说明此片段表示比特0,否则,表示比特1。将提取出来的比特串转换为整数,并与前面提取出来的整数进行叠加。
步骤8:判断“了”字片段嵌入单元的个数是否为0,如果为0,则秘密信息的提取完成,转至步骤10;如果不为0,转至步骤9。
步骤9:计算每一个“了”字片段中“了”的个数,如果为偶数,则说明此片段表示比特0,否则,表示比特1。将提取出来的比特串转换为整数,并与前面提取出来的整数进行叠加。
步骤10:将提取出来的整数转换为其对应的水印信息。
水印验证包括:
预先选取一些语料作为训练语料,统计同义词词典中的同义词在训练语料中出现的频次,并将其以同义词或频次的形式记录下来。此训练过程只进行一次,在水印验证过程中,只需用到训练过程中统计出来的结果。具体按以下几个步骤进行:
步骤1:给定特征阈值δ,本发明设置δ=0.6,根据预先工作中统计出来的结果选取在训练语料中出现频率大于δ的特征词作为特征元素。
步骤2:统计步骤1中选取的特征元素在检测文本中出现的频率r。
步骤3:比较频率r和检测阈值Φ(本发明设置为Φ=0.7),若r<Φ,则认为该检测文本中含密,否则认为该检测文本中未含密。
本发明的中文超短文本的水印嵌入和提取方法,在将口语、网络用语以及繁体字增加至词典来扩大同义词词典规模基础上,同时在载体操纵方面融合同义词载体操纵、“的”字片段载体操纵和“了”字片段载体操纵三个载体操纵技术来充分识别文本中的可用嵌入单元,另外采用专有名词词典来过滤专有名词的替换给文本带来的隐蔽性问题。而在编码方面针对同义词嵌入单元采用容量最优化——混合进制编码,针对“的”、“了”字片段采用扩频编码,充分利用每一个嵌入单元,大大提高了超短文本的隐藏容量。在提取水印信息时,采用水印验证技术来分析待检测文本是否是经过嵌入处理的文本,有效地降低了提取水印信息时的虚警率。
经过申请人的实验,从互联网上随机搜索10000篇饮食类的点评,这些点评长度不等,最短的只有50字,平均长度为115字。采用本发明的技术方案,在点评当中嵌入14比特的水印信息。在这10000篇点评当中,有4729篇点评成功嵌入秘密信息,这些嵌入成功的点评平均长度为165.6字,平均每11.8个字嵌入一个比特,嵌入成功率为47.29%。然后对嵌入成功的4729篇含密文本进行水印信息提取,提取成功率为100%。在对10000篇点评的原始文档进行秘密信息提取时,从9篇文章中提取出了所需的秘密信息,提取水印信息的虚警率接近0.1%。将4729篇含密文本与5271篇没有成功嵌入水印的点评混合到一起,然后对其进行加入水印验证的水印信息提取,共有4731篇文章中可以提取出有效地水印信息。根据分析,其中有两篇的水印信息是无效的。由此可知,添加了水印验证以后,将水印信息提取的虚警率降低至0.02%。
附图说明
图1为水印信息嵌入的框架。
图2为水印信息提取的框架。
图3为嵌入单元识别的流程图。
图4为秘密信息嵌入的流程图。
图5为“的”和“了”字片段秘密信息嵌入流程图。
图6为“的”和“了”预替换流程图。
图7为秘密信息提取流程图。
图8为“的”和“了”字片段秘密信息提取流程图。
图9为水印验证的流程图。
图10为赵敏之等提出的文本隐藏算法。
以下结合附图和实施例对本发明作进一步的详细说明。
具体实施方式
首先对本发明将要用到的术语进行解释和定义:
一、术语解释:
1、载体操纵算法
载体操纵算法采用的是基于词汇的载体操纵算法和基于句法的载体操纵算法相结合,词汇层次采用的是中文绝对同义词替换算法,句法不完整语义层次采用的是助词“的”和“了”字的增删,如此,可以在有限的文本当中寻找更多的嵌入单元。
2、隐藏编码算法
超短文本的平均长度在150字,需要嵌入的水印信息可以根据需求来进行设置,例如14比特。为了能在短小的文本中成功嵌入水印信息,就得充分利用每一个嵌入单元。因而采用混合进制编码与扩频编码相融合的隐藏编码算法来充分利用每一个嵌入单元。针对中文绝对同义词算法,采用混合进制编码算法。混合进制编码算法参考了Keith Winstein的《Lexical Steganography Through Adaptive Modulation of the Word Choice Hash》里第5部分的Ideal Coding。此编码给每一组同义词集合中的单词从0编号。每个拥有同义词的单词都对应一个进制不同的一位数字。设载体文本中拥有同义词的单词数量为N,那么这N个单词联合在一起就可以视作一个N位的混合进制数。秘密信息可以看作二进制数,利用同义词替换,使载体代表的混合进制数等于秘密信息代表的二进制数就完成了嵌入过程。提取过程只是简单地从文本中把这个混合进制数读出来再转换回二进制数。混合进制编码算法是容量最优编码,它充分利用了每一嵌入单元。针对助词“的”和“了”字的增删,采用了扩频编码。“的”字片段的扩频编码是在赵敏之等人在《基于虚词变换的自然语言信息隐藏算法研究》2.2节里的提出文本隐藏算法(参见图10)基础上进行修改来实现编码。本发明的“的”字片段扩频编码是指将文本进行分句后,每4个分句划分为一个“的”字片段,片段中“的”的个数为偶数则表示比特0,否则表示比特1。秘密信息嵌入时,通过“的”的增删规则来寻找片段中可以增删“的”的句子来改变片段中“的”的个数,以此达到嵌密的目的。“了”字片段的扩频编码与“的”字片段的扩频编码相同,只是“了”字片段的扩频编码当中,每3个分句划分为一个“了”字片段。
3、同义词词典的建立
同义词的替换算法的关键就在于词典的建立。本发明中,同义词除了常用的绝对同义词外,根据超短文本中网络用语多、口语化、语法要求不高的特点,将网络用语、口语以及部分繁体字添加至同义词词典当中,扩充了同义词词典的规模,也进一步提高了超短文本的隐藏容量。
4、专有名词词典
同义词词典中的某些同义词在特定的语篇中会变成专有名词,这样嵌密时进行替换就很容易就引起读者的注意。为了排除这些专有名词的同义词替换带来的隐蔽性问题。本发明采用了建立专有名词词典的方法来进行避免。只要是属于专有名词词典中的词语均不考虑作为嵌入单元。
5、水印验证
水印信息的长度可以根据需求来设置,例如本发明中设置为14比特,而需要嵌入的水印内容才几十个,因而在提取水印信息时虚警率高达0.1%,使得水印难以应用。为了降低虚警率,本发明设计了一种高可靠的水印验证方法,如果水印验证得出此文本是已经经过嵌密处理的,那么得出来的水印信息即是有效地信息,反之,水印信息是无效的。
6、专利201110122787.5中的步骤
中国专利申请(申请号201110122787.5)中的权利要求1中的步骤和权利要求2中的舍弃位置选择算法步骤,来找到准嵌入单元中的嵌入单元,此过程通过专利201110122787.5中的一系列步骤,舍弃一些准嵌入单元集合当中的准嵌入单元,使最终得到的嵌入单元集合是所有理想嵌入单元的集合,在嵌入秘密时,只将理想嵌入单元承载秘密信息,就能保证含密句子与原件分词结果相一致。
二、定义:
(1)超短文本:是指字数在80字至500字的文本文档,例如微博,点评,留言等。
(2)水印:是指嵌入在数字作品中的一个版权信息,它可以是作者的序列号、公司标志、有特殊意义的文本等。
(3)嵌入单元:对于特定的自然语言处理技术,可以进行不改变语义的变换的最短文本片段。例如,对于同义词替换技术而言,具有同义词的词语就可以作为嵌入单元;对于句式变换技术而言,可以进行句式变换的句子就可以称作嵌入单元。
(4)准嵌入单元:从文本中识别出来的嵌入单元当中,有的进行替换后可能会造成嵌入单元识别不一致。我们把刚识别出来的嵌入单元统称为准嵌入单元,只有在对准嵌入单元进行预处理(如预替换)操作后,那些替换前后识别出来的嵌入单元一致的,才作为可以进行嵌密的嵌入单元。
(5)准嵌入单元集合:一个分句中识别出来的所有准嵌入单元的集合。
(6)嵌入单元识别一致:对嵌入单元进行替换后,重新对替换后的新句子进行嵌入单元识别,识别出来的嵌入单元与替换前识别出来的嵌入单元一致。
(7)理想嵌入单元:句子中的准嵌入单元,如果无论对这些词怎样进行同义词替换,生成的新句子都与原句分词一致,那么这些准嵌入单元被称为理想的。
(8)嵌入单元集合:从文本中依次识别出来的所有理想嵌入单元组成的有序集合。
(9)嵌入单元的物理顺序:嵌入单元在嵌入单元集合中的顺序。例如嵌入单元集合为{A,B,C,D},则A,B,C,D的物理顺序分别为1,2,3,4。
(10)嵌入单元的逻辑顺序:将嵌入单元集合按密钥进行重排序,嵌入单元在重排序后的顺序则为逻辑顺序。例如,嵌入单元集合{A,B,C,D}重排序后为{C,D,A,B},则A,B,C,D的物理顺序分别为3,4,1,2。目的是防止未授权提取!
(11)分句:以指定标点符号对文本进行分割,分割出来的每一个文本片段定义为一个分句。软件中的指定标点符号有以下几种:'',’’,'\f','\n','\r','\t','\v','。','?','!',';',':',',','、','‘’,’’','“',’”’,'(',')','【','】','{','}','《','》','<','>',',','.',':','(',')','-'。
(12)“的”字片段:通过对各种文体的不完全词频统计发现“的”“了”“是”等虚词是汉语中出现频率很高的词,在某些情况之下可以进行增删而不会改变文本的原意和文本的质量,不易引起检测者的关注。“的”字片段扩频算法及“了”字片段扩频算法正是通过此特性来进行秘密信息的嵌入。“的”字片段是指将文本中若干个分句划分为一个片段,本发明中,默认4个分句为1个“的”字片段。通过计算片段中的“的”字的个数来判断此片段的比特值,即“的”个数为奇数时表示比特1,为偶数时表示比特0。嵌入时,通过增删片段中“的”的个数来改变片段的比特值。
(13)“了”字片段:与“的”字片段相似,将文本中若干个分句划分为一个片段,本发明中默认3个分句为1个“了”字片段。通过计算片段中的“了”字的个数来判断此片段的比特值,即“了”个数为奇数时表示比特1,为偶数时表示比特0。嵌入时,通过增删片段中“了”的个数来改变片段的比特值。
(14)特征词和非特征词:选取一些语料作为训练语料,统计同义词词典中的单词在训练语料中出现的频次,根据统计出来的频次计算在一个同义词集合中每个单词出现的概率(设有一个同义词集合S={a,b,c},其中单词a,b和c互为同义词。若S中每个单词在训练语料中出现的频次分别为na,nb和nc,那么认为它们在语料中出现的概率分别为称出现概率大于0.5的为特征词,低于0.5的为非特征词。一个同义词集合当中,最多只能有一个特征词,而非特征词可以多于一个。
(15)高频词词典:选择汉语中那些没有同义词并具有繁体字的高频词,并将词语繁体和简体字的组合作为这个高频词的同义词记录下来。例如,词语ab的a和b字分别有繁体字A和B,则{ab,Ab,aB,AB}组成一个同义词集合。
(16)特征阈值δ:用来选取特征元素的阈值,δ∈[0.5,1],本发明中δ=0.6。
(17)特征元素:是指在训练语料中出现频率大于特征阈值的特征词。
(18)检测阈值φ:用来和特征元素在检测文本中出现的频率进行比较,从而判断检测文本是否含密的阈值,φ∈[0.5,1],本发明中δ=0.7。若特征元素在检测文本中出现的频率小于检测阈值,认为该文本中为含密,否则未含密。
以下是对“的”和“了”字片段增删的规则说明:
(1)删除“的”的规则:如果在分句当中出现如下形式的短语,则可以将短语中的“的”字删除。
①/r+的+/n;
②/r+的+/rzv;
③/n+的+/n;
④其他+的+/n;
⑤其余+的+/n;
⑥/a+的+/n;
⑦非常|十分|特别+的+/a;其中,|:表示或者;
⑧不断+的+/v;
⑨另外+的+/m+/q;
(2)增加“的”的规则:如果在分句当中出现如下形式的短语,则可以在短语中添加一个“的”字:
①/r+/n;
②/r+/rzv;
③/n+/n;
④其他+/n;
⑤其余+/n;
⑥/a+/n;
⑦非常|十分|特别+/a;其中,|:表示或者;
⑧不断+/v;
⑨另外+/m+/q;
其中,/n表示名词;/r表示代词;/rzv表示谓语性指示代词;/a表示形容词;/v表示动词;/m表示数词;/q表示量词;
(3)删除“了”的规则:如果分句是以“了”结尾,则可以将分句末尾的“了”字删除;
(4)增加“的”的规则:如果分句的末尾没有“了”,则可以在分句的末尾增加一个“了”字。
本发明的技术方案原理如下:
通过将口语、网络用语以及繁体字增加至词典来扩大同义词词典规模基础上,同时在载体操纵方面融合同义词载体操纵、“的”字片段载体操纵和“了”字片段载体操纵三个载体操纵技术来充分识别文本中的可用嵌入单元,另外采用专有名词词典来过滤专有名词的替换给文本带来的隐蔽性问题以及采用预替换和预增删的方法来避免替换后使嵌入单元识别不一致而导致无法正确提取水印信息的问题。而在编码方面针对同义词嵌入单元采用容量最优化——混合进制编码,针对“的”、“了”字片段采用扩频编码,充分利用每一个嵌入单元,大大提高了超短文本的隐藏容量。在提取水印信息时,采用水印验证技术来分析待检测文本中特征词频率的变化来分析文本是否嵌密,从而减小了提取水印信息的虚警率。
参见图1,图1是水印信息嵌入的框架图,包括以下过程:
过程s101:识别出文本中的嵌入单元,包括同义词嵌入单元、“的”字片段嵌入单元和“了”字片段嵌入单元。
过程s102:将水印信息转换为比特串,并依次在识别出来的嵌入单元中嵌入比特值。
参见图2,本发明水印信息嵌入的框架图,包括以下过程:
过程s101:识别出文本中的嵌入单元,包括同义词嵌入单元、“的”字片段嵌入单元和“了”字片段嵌入单元。
过程s202:从识别出来的嵌入单元中,依次提取出嵌入的比特值,并将其转换为对应的水印信息。
过程s203:通过统计嵌入单元中特征词的频率来与阈值进行比对,判断文本中是否进行了嵌入处理。如果没有进行嵌密处理,则过程s202中提取出来的水印信息是无效的,否则,过程s202中提取出来的即为超短文本中嵌入的秘密信息。
图3至图9是分别对图1和图2中步骤s101、s102、s202、和s203四个过程的详细分解。
参见图3,图3是嵌入单元识别的流程图,是步骤s101的详细流程图,包括以下步骤:
步骤s301:待处理的超短文本中可能含有繁体字,而繁体字会影响到后续处理中文本的分词,从而影响嵌入单元的识别。因此,首先需将超短文本依据繁简对照表,将文本中的繁体字转换为对应的简体字。
步骤s302:根据文本中的标点符号将文本切分成多个小句,其中,所述的小句由切分出的内容与对应的标点符号组成。可以将文本划分成小句的标点符号为:'',’’,'\f','\n','\r','\t','\v','。','?','!',';',':',',','、','‘’,’’','“',’”’,'(',')','【','】','{','}','《','》','<','>',',','.',':','(',')','-'。同时,使用ICTCLAS工具对每一个分句进行分词处理,并记录下分句的内容、分词后的词语列及对应词性列表。
步骤s303:依次取出分句中的词语,判断其是否位于专有名词词典中,如果在词典中,则继续取下一个词进行判断;如果不在,则转至步骤s304。
步骤s304:判断词语是否位于同义词词典中。这里的同义词词典包括普通的同义词词典以及高频词词典。首先判断词语是否位于普通的同义词词典中,如果在,则将其记录到准嵌入单元集合中,如果不在,则继续判断其是否在高频词词典中,如果在,则将其记录到准嵌入单元集合中,如果不在,则转至步骤s303。
步骤s305:如果一个分句中的词语都已经判断完毕,则对分句中的准嵌入单元进行预替换,将那些替换前后嵌入单元识别一致的准嵌入单元确定为可用的嵌入单元,记录至嵌入单元集合当中。
此步骤采用了中国专利申请(申请号201110122787.5)中的权利要求书中权利要求1中的步骤和权利要求2中的舍弃位置选择算法步骤,来找到准嵌入单元中的嵌入单元,此过程通过专利201110122787.5中的一系列步骤,舍弃一些准嵌入单元集合当中的准嵌入单元,使最终得到的嵌入单元集合是所有理想嵌入单元的集合,在嵌入秘密时,只将理想嵌入单元承载秘密信息,就能保证含密句子与原件分词结果相一致。
步骤s306:如果超短文本中所有分句中的嵌入单元都已识别出来,则根据给出的密钥,对嵌入单元进行排序,并记录下嵌入单元排序后的逻辑顺序。
步骤s307:计算同义词嵌入单元容量t,并将其与秘密信息所需容量c进行比较,如果t≥c,则转至步骤s313;否则转至步骤s308。
步骤s308:根据给出的密钥,对划分好的分句进行排序。
步骤s309:将排序后的分句进行“的”字片段的划分。片段中分句的数量可以根据需要进行设置,本发明设置为4个分句为一个片段。划分出来的“的”字片段个数为d,而d≤c-t。将每一个片段中分句的序号记录下来。
步骤s310:容量判断。如果t+d≥c,则转至步骤s313;否则转至步骤s311。
步骤s311:在排序好的分句基础上进行“了”字片段的划分。片段中分句的数量可以根据需要进行设置,设置为3个分句为一个片段。划分出来的“了”字片段个数为l,而l≤c-t-d。将每一个片段中分句的序号记录下来。
步骤s312:容量判断。如果t+d+l≥c,则转至步骤s313;否则转至步骤s314。
步骤s313:文本中有足够的容量来嵌入水印信息,嵌入单元的识别结束,进入下一个步骤。
步骤s314:文本中嵌入单元的容量无法满足水印信息嵌入所需的容量,嵌入单元的识别结束,同时给出异常提示“嵌入单元不足,无法嵌入秘密信息”
参见图4,图4是秘密信息嵌入的流程图,即过程s102的详细流程图,包括以下步骤:
该流程中,输入的是s101里处理后的结果:分句后的句子信息、识别出来的嵌入单元集合、“的”和“了”字片段的分句序号、嵌入单元集合的逻辑序号以及转换为整数的水印信息。
步骤s401:采用混合进制编码以嵌入单元的逻辑顺序对嵌入单元进行比特值的计算,并将计算出来的比特串以嵌入单元的物理顺序返回。
此步骤中,混合进制编码算法参考了Keith Winstein的《Lexical Steganography ThroughAdaptive Modulation of the Word Choice Hash》里第5部分的Ideal Coding。此编码给每一组同义词集合中的单词从0编号。每个拥有同义词的单词都对应一个进制不同的一位数字。设载体文本中拥有同义词的单词数量为N,那么这N个单词联合在一起就可以视作一个N位的混合进制数。秘密信息可以看作二进制数,利用同义词替换,使载体代表的混合进制数等于秘密信息代表的二进制数就完成了嵌入过程。提取过程只是简单地从文本中把这个混合进制数读出来再转换回二进制数。本发明中每一个嵌入单元对应的数字即为这个嵌入单元的比特值,它是水印信息转换的整数除以嵌入单元元素个数的余数值。例如,水印信息转换的整数为M,某一嵌入单元的同义词个数为n,则M%n=r,那么r就是这个嵌入单元的比特值。计算完所有嵌入单元的比特值后,然后再按嵌入单元的物理顺序对比特串进行排序。
步骤s402:遍历分句,依次找到每个嵌入单元所在的位置,并根据对应的比特值对嵌入单元进行同义词替换,获得嵌密后的文本。
步骤s403:判断“的”字片段嵌入单元的个数是否为0,如果为0,则说明已在同义词嵌入单元中完全嵌入了秘密信息,上一步骤中得出的含密文本则是最终的含密文本;否则,说明同义词嵌入单元中没有完全将秘密信息嵌入,仍需在“的”字片段嵌入单元中进行嵌密,转至步骤s404。
步骤s404:依据记录的“的”字片段的分句序号,将上一步得出的含密文本进行片段划分,并计算“的”字片段中“的”的个数来判断片段表示的比特值。当“的”的数目为偶数时,片段表示比特0,数目为奇数时,片段表示比特1。如果片段表示的比特值与所需要嵌入的比特值不同,则通过改变片段中“的”的数目来达到嵌密的信息。改变“的”数目时,先根据规则查找片段中可以删除“的”的位置,并采用预删除的方法来避免“的”的删除会影响到嵌入单元的识别;如果片段中没有可删除“的”的位置,则进行“的”的增加操作。增加时也是先根据规则查找片段中可以增加删除“的”的位置,并采用预增加的方法来避免“的”的增加会影响到嵌入单元的识别。“的”字片段嵌密完后,得到含密文本。
步骤s405:判断“了”字片段嵌入单元的个数是否为0,如果为0,则说明已在同义词嵌入单元和“的”字片段嵌入单元中完全嵌入了秘密信息,上一步骤中得出的含密文本则是最终的含密文本;否则,说明“的”字片段嵌入单元中没有完全将剩余的秘密信息嵌入,仍需在“了”字片段嵌入单元中进行嵌密,转至步骤s406。
步骤s406:“了”字片段秘密信息的嵌入。此处理的过程与“的”字片段秘密信息的嵌入相同,详细过程参照s404。
参见图5,图5是“的”和“了”字片段秘密信息嵌入流程图,即为上述步骤s404和步骤s406的详细流程图,包括以下步骤:
该流程中,输入的是步骤s402得到的含密文本、“的”或“了”字片段的分句序号、剩余的需要嵌入的秘密信息的整数。“的”和“了”字片段秘密信息的嵌入流程是一样,这里以“的”字片段秘密信息的嵌入为例来进行说明。
步骤s301、s302:经过前面的嵌密处理的,文本中就会存在繁体字。因而仍需要进行步骤s301、s302的操作进行处理。具体过程不累述。
步骤s503:依据记录的每个片段中的分句号,找到对应的分句组成片段。
步骤s504:计算片段中“的”字的个数n。
步骤s505:片段中采用二进制编码,n为偶数表示比特0,为奇数表示比特1。如果片段中表示的比特值与所需嵌入的比特值相同,则转至步骤s503;否则转至步骤s506。
步骤s506:依次取出片段中的分句,依据规则查找可以删除“的”的位置。
步骤s507:在找到的可删除“的”的位置,删除分句中的“的”字,并对删除“的”后的句子进行嵌入单元的识别。将识别出来的嵌入单元与删除前识别出来的嵌入单元进行对比,如果一致,则将分句的序号及删除“的”后的分句记录至删“的”片段词典当中;否则,继续遍历片段中的分句。
步骤s508:判断删“的”片段词典是否为空,如果词典为空,则转至步骤s509;否则,转至步骤s510。
步骤s509:依次取出片段中的分句,依据规则查找可以增加“的”的位置。
步骤s510:从词典中随机取出一个分句对文本中的分句进行替换来嵌入比特值。
步骤s511:在找到的可增加“的”的位置,在分句中增加“的”字,并对增加“的”后的句子进行嵌入单元的识别。将识别出来的嵌入单元与增加前识别出来的嵌入单元进行对比,如果一致,则将分句的序号及增加“的”后的分句记录至增“的”片段词典当中;否则,继续遍历片段中的分句。
步骤s512:判断增“的”片段词典是否为空,如果词典为空,则转至步骤s513;否则,转至步骤s510。
步骤s513:片段中既没有可删除“的”的分句,也没有可添加“的”的分句,说明此片段无法正确嵌入所需的比特值。秘密信息嵌入结束,同时给出异常提示“片段无法正确嵌入秘密信息”。
步骤s514:所有片段嵌密完毕后,得到的是简体文本中“的”的增删,以其作为参照,在繁体文本的对应位置进行“的”的增删。
参见图6,该图是“的”和“了”预替换流程图,即上述步骤s607和步骤s611的详细流程图,包括以下步骤:
该流程中,输入的是增删“的”或“了”之前的分句信息以及增删“的”或“了”之后的分句。“的”的预替换与“了”的预替换是一样的,这里以“的”的预替换进行说明。另外,“的”和“了”的预替换包括预删除和预增加两个操作,而这两个操作的步骤都是一样的,不同的在于输入项。预删除输入的是删除了“的”或“了”的新句子,预增加则是增加了“的”或“了”的新句子。
步骤s601:将增加了“的”或是删除了“的”的新句子,用ICTCLAS进行分词处理,得到句子的词语列表。
步骤s602:用嵌入单元识别的步骤对增删“的”之前的句子进行嵌入单元的识别。
步骤s603:用嵌入单元识别的步骤对增删“的”之后的句子进行嵌入单元的识别。
步骤s604:判断增删“的”之前识别出来的嵌入单元的个数是否与增删“的”之后识别出来的嵌入单元个数相等。如果不相等,转至步骤s606;否则,转至步骤s605。
步骤s605:依次判断增删“的”之前与之后识别出来的嵌入单元是否相等。如果全都相等,则转至步骤s607;否则,转至步骤s606。
步骤s606:虽然依据规则可以在分句中增删“的”字,但是增删“的”后会影响到嵌入单元的识别,因此此位置“的”的增删不能作为嵌入时改变片段中“的”字数目的一个变换,将其舍去,继续下面的步骤。
步骤s607:分句中“的”字的增删不会影响到嵌入单元的识别,因而此位置“的”的增删可以作为嵌入时改变片段中“的”字数目的一个变换,将分句序号和增删“的”之后的句子保存至增“的”字典或删“的”字典。
参见图7,图7是秘密信息提取嵌入的流程图,即上述过程s202的详细流程图,包括以下步骤:
该流程中,输入的是s101里处理后的结果:分句后的句子信息、识别出来的嵌入单元集合、“的”和“了”字片段的分句序号、嵌入单元集合的逻辑序号以及含密文本的原始文本。
步骤s701:在含密文本转换的简体文本中,依次找出每一个嵌入单元所在的位置,并一一记录下来。
步骤s702:依据上一步找到的位置,在含密文本的原始文本中找出嵌入单元,并与简体文本中的嵌入单元一一对应的记录下来。
步骤s703:遍历简体文本的分句,找出嵌入单元所在分句,并用含密文本原始文本中的嵌入单元在同义词集合中查找它的序号,所找到的序号即为此嵌入单元的比特值。
步骤s704:找出所有嵌入单元的比特值。此时提取出来的比特值串的顺序为嵌入单元的物理顺序。以嵌入单元集合的逻辑顺序对比特值串进行重排序,并将比特值串转换为整数。
步骤s705:判断“的”字片段的数目,如果数目为0,则说明“的”字片段中没有嵌入秘密信息,上一步提取出来的整数即为水印信息转换的整数,转至步骤s709;否则,说明“的”字片段中也嵌有秘密信息,转至步骤s706。
步骤s706:“的”字片段嵌入单元秘密信息提取。依据“的”片段的分句序号得到片段的分句内容,并计算片段中“的”的个数,“的”的个数为偶数即表示比特0,否则表示比特1。将“的”片段中提取出来的比特串转换为整数,并与同义词嵌入单元中的提取出来的整数叠加。
步骤s707:判断“了”字片段的数目,如果数目为0,则说明“了”字片段中没有嵌入秘密信息,上一步提取出来的整数即为水印信息转换的整数,转至步骤s709;否则,说明“了”字片段中也嵌有秘密信息,转至步骤s708。
步骤s708:“了”字片段嵌入单元秘密信息提取。此处理的过程与“了”字片段嵌入单元秘密信息提取相同,详细过程参照s706。
步骤s709:将提取出来的整数,转换为其对应的字符串。
参见图8,该图是“的”和“了”字片段秘密信息提取流程图,即上述步骤s706和步骤s708的详细流程图,包括以下步骤:
该流程中,输入的是分句信息及“的”或“了”字片段的分句序号“的”和“了”字片段秘密信息的提取流程是一样,这里以“的”字片段秘密信息的提取为例来进行说明。
步骤s801:取出一个片段,依据“的”字片段中记录的分句序号,得到片段中分句的内容。
步骤s802:计算片段中“的”的个数n。
步骤s803:如果n为偶数,则说明片段中嵌入的比特值为0,否则,说明片段中嵌入的比特值为1。
步骤s804:判断片段是否已遍历完,如果没有遍历完,则转至步骤s801,否则,转至步骤805。
步骤s805:将“的”字片段中提取出来的比特串转换为相对应的整数,进入下一个步骤。
参见图9,图9是水印验证流程图,步骤s203的详细流程图,包括以下步骤:
该流程中,输入的是识别出来的嵌入单元集合以及提取出来的水印信息。
步骤s901:参照特征词和非特征词词表,依次判断嵌入单元中哪些是特征词,哪些是非特征词。同时统计出特征词频次m以及非特征词频次n。
步骤s903:比较特征词频率r与检测阈值δ的大小。如果r>δ,则说明文本中没有嵌密,上面步骤中提取出来的水印信息是无效的;如果r<δ,则说明文本中有嵌入秘密信息,上面步骤中提取出来的水印信息是有效的。
实施例:
以下是本发明对同义词集合采用混合进制编码及“的”字片段与“了”字片段采用扩频编码的实施例。
一段超短文本如下:
其实,偶在三楼的鲜Q,味道一般,继续八点半半价,还是凭票入场!此情此景,让偶顿时觉得无力吐槽!哇卡卡
这段文本中识别出来的嵌入单元及其同义词集合如下,黑体为嵌入单元,括号内的为嵌入单元的同义词集合,【】里面的数字表示分句的序号:
其实,【0】偶在三楼(楼 樓)的鲜(鲜 鮮)Q,【1】味道一般,【2】继续(继续 继續 繼续 繼續)八点半半价(半价 半價),【3】还(还 還)是凭(凭 憑)票(票 劵)入场(入场 入場)!【4】此情此景,【5】让偶顿时觉得无力吐槽!【6】哇卡卡【7】。
另外需要说明的是,将嵌入的水印信息转换为整数为6999;经过密钥排序后的嵌入单元顺序为楼{楼,还,凭,鲜,票,继续,入场,半价};经过密钥排序后的分句顺序为{0,4,5,1,6,2,7,3};识别出来的“的”字片段的分句序号为{{0,4,5,1},{6,2,7,3}};识别出来的“了”字片段的分句序号为{{0,4,5},{1,6,2}}。
一、用混合进制编码以嵌入单元的逻辑顺序对嵌入单元进行比特值的计算。
步骤1:给每一嵌入单元的同义词集合中的词语从0开始编号。
步骤2:用整数6999除以嵌入单元“楼”的同义词个数,所得余数即为嵌入单元“楼”所需嵌入的比特值。即6999/2=3499,6999%2=1,也就是说1即是嵌入单元“楼”所需嵌入单比特值。然后用3499除以嵌入单元“鲜”的同义词个数,得出它所需嵌入的比特值。不断重复此过程,直到把所以嵌入单元所需嵌入的比特值计算完。结果如下表所示:
嵌入单元 | 剩余整数 | 比特值 | 所属进制数 |
楼 | 3499 | 1 | 二进制 |
还 | 1749 | 1 | 二进制 |
凭 | 874 | 1 | 二进制 |
鲜 | 437 | 0 | 二进制 |
票 | 218 | 1 | 二进制 |
继续 | 54 | 2 | 四进制 |
入场 | 27 | 0 | 二进制 |
半价 | 13 | 1 | 二进制 |
步骤3:将上表中得到的混合进制数11101201以嵌入单元的物理顺序进行排序,得到的结果为:10211110。然后将嵌入单元按照物理顺序根据对应的比特值依次进行同义词替换。下表即为各嵌入单元根据比特值替换后的词语:
嵌入单元 | 替换后的词语 |
楼 | 樓 |
鲜 | 鲜 |
继续 | 繼续 |
半价 | 半價 |
还 | 還 |
凭 | 憑 |
票 | 夯 |
入场 | 入场 |
同义词嵌密后的文本为:
其实偶在三樓的鲜Q,味道一般,繼续八点半半價,還是憑劵入场!此情此景,让偶顿时觉得无力吐槽!哇卡卡
二、使用扩频编码算法对“的”字片段嵌入单元进行比特值计算。
步骤1:根据“的”片段的分句序号,找出“的”片段的内容。第一个“的”片段序号为{0,4,5,1},它的内容则为{{其实,}{還是憑劵入场!}{此情此景,}{偶在三樓的鲜Q,}}。
步骤2:计算“的”片段中“的”的个数。从片段中可知,此片段中“的”的个数为1。
步骤3:计算片段所表示的比特信息。本发明规定,“的”个数为偶数表示比特0,奇数表示比特1。1为奇数,则此片段表示比特1。
步骤4:计算“的”片段所需嵌入的比特值。同义词嵌入单元中剩余的整数13即是需要在“的”片段中嵌入的信息。本发明用二进制对“的”字片段进行编码。13/2=6,13%2=1。即第一个“的”片段所需嵌入的比特为1。
步骤5:判断片段表示的比特值是否与所需嵌入的比特值相等。通过比较可知,片段表示的比特值即为所需嵌入的比特,无需对片段中的“的”进行改变,进行下一个片段的计算。
步骤6:第二个“的”片段的分句序号为{6,2,7,3},则分句内容为{{让偶顿时觉得无力吐槽!}{味道一般,}{哇卡卡}{繼续八点半半價,}}。
步骤7:计算“的”片段中“的”的个数。从片段中可知,此片段中“的”的个数为0。
步骤8:计算片段所表示的比特信息。0为偶数,则此片段表示比特0。
步骤9:计算“的”片段所需嵌入的比特值。采用步骤4中剩余的整数6来编码。6/2=3,6%2=0。即第二个“的”片段所需嵌入的比特为0。
步骤10:判断片段表示的比特值是否与所需嵌入的比特值相等。通过比较可知,片段表示的比特值即为所需嵌入的比特,无需对片段中的“的”进行改变,“的”片段已经全部嵌入完,进行下一个步骤。
三、使用扩频编码算法对“了”字片段嵌入单元进行比特值计算。
步骤1:根据“了”片段的分句序号,找出“了”片段的内容。第一个“了”片段序号为{0,4,5},它的内容则为{{其实,}{還是憑劵入场!}{此情此景,}}。
步骤2:计算“了”片段中“了”的个数。从片段中可知,此片段中“了”的个数为0。
步骤3:计算片段所表示的比特信息。本发明规定,“了”个数为偶数表示比特0,奇数表示比特1。0为偶数,则此片段表示比特0。
步骤4:计算“了”片段所需嵌入的比特值。“的”字片段嵌入单元中剩余的整数3即是需要在“了”片段中嵌入的信息。本发明用二进制对“了”字片段进行编码。3/2=1,3%2=1。即第一个“了”片段所需嵌入的比特为1。
步骤5:判断片段表示的比特值是否与所需嵌入的比特值相等。通过比较可知,片段表示的比特值与所需嵌入的比特不同,需要对片段中“了”的个数进行改变。
步骤6:判断片段中是否有可以删除的“了”。通过规则匹配发现片段中没有“了”可以删除。
步骤7:判断片段中是否有可以增加的“了”。通过规则匹配发现分句“还是凭票入场!”可以添加“了”。因而将原分句替换为“還是憑劵入场了!”,将分句中“了”的个数改变,嵌入所需的比特值。
步骤8:第一个“了”片段序号为{1,6,2},它的内容则为{{偶在三樓的鲜Q,}{让偶顿时觉得无力吐槽!}{味道一般,}}。
步骤9:计算“了”片段中“了”的个数。从片段中可知,此片段中“了”的个数为0。
步骤10:计算片段所表示的比特信息。0为偶数,则此片段表示比特0。
步骤11:计算“了”片段所需嵌入的比特值。采用步骤4中剩余的1来编码。1/2=0,1%2=1。即第一个“了”片段所需嵌入的比特为1。
步骤12:判断片段表示的比特值是否与所需嵌入的比特值相等。通过比较可知,片段表示的比特值与所需嵌入的比特不同,需要对片段中“了”的个数进行改变。
步骤13:判断片段中是否有可以删除的“了”。通过规则匹配发现片段中没有“了”可以删除。
步骤14:判断片段中是否有可以增加的“了”。通过规则匹配发现分句“让偶顿时觉得无力吐槽!”可以添加“了”。因而将原分句替换为“让偶顿时觉得无力吐槽了!”,将分句中“了”的个数改变,嵌入所需的比特值。剩余的整数为0,“了”字片段也已经全部嵌入秘密信息,则水印信息已经全部嵌入文本当中,下面是嵌密后的文本:
其实,偶在三樓的鲜Q,味道一般,继續八点半半價,還是憑券入场了!此情此景,让偶顿时觉得无力吐槽了!哇卡卡。
Claims (1)
1.一种中文超短文本的水印嵌入和提取方法,其特征在于,包括嵌入和提取两个过程,所述的嵌入过程包括嵌入单元的识别和秘密信息的嵌入两个阶段;所述的提取过程包括嵌入单元的识别、和秘密信息的提取和水印验证三个阶段;嵌入和提取两个过程中的嵌入单元的识别操作一样;
所述的嵌入单元的识别包括以下几个步骤:
步骤1:文本繁简体转换:
需先根据繁简对照表将待嵌密的文本中的繁体字转换为相对应的简体字;
步骤2:以文本中的标点符号作为分界符,将文本划分成多个分句,同时对每一个分句进行分词,并将小句内容和分词后的结果记录下来;
步骤3,取出一个小句中的一个词语,判断其是否位于专有名词词典中,如果在专有名词词典中,则继续步骤三取小句中的下一个词语,否则,转至步骤4;
步骤4,判断词语是否位于同义词词典当中,如果在,则将此词语的信息记录在准嵌入单元集合当中;如果不在,转至步骤5;
步骤5:判断词语是否位于高频词词典当中,如果在,则将此词语的信息记录在准嵌入单元集合当中;如果不在,转回步骤3;
步骤6:嵌入单元预替换:
嵌入单元的预替换是在分句的基础上进行的,当一个分句中的所有词语都进行完准嵌入单元的识别后,在分句上对分句中所有的准嵌入单元进行预替换;通过采用中国专利201110122787.5中的步骤,将那些替换前后分词与原句一样的准嵌入单元确认为理想嵌入单元,并将其记录至嵌入单元集合当中;
步骤7:所有分句中的词语都判断完后,依据密钥对嵌入单元集合当中的嵌入单元进行排序;
步骤8:判断嵌入单元集合的容量是否满足嵌入秘密信息所需的容量,如果嵌入单元集合的容量满足所需容量,则嵌入单元的识别终止;否则,转至步骤9;
步骤9:依据密钥对超短文本的所有分句进行排序,每4个分句划分为一个“的”字片段,并记录下每一个片段中的分句序号;其中“的”字片段的最大数目应为嵌入秘密信息所需容量与同义词嵌入单元的容量之差;
步骤10:判断嵌入单元集合的容量与“的”字片段的容量之和是否满足嵌入秘密信息所需的容量,如果满足所需容量,则嵌入单元的识别终止;否则,转至步骤11;
步骤11:依据步骤9中排好序的分句,进行“了”字片段的划分,并记录下每一个片段中的分句序号,“了”字片段中的分句数可以根据需求来设定,默认为3个分句为一个“了”字片段;
步骤12:判断嵌入单元集合的容量、与“的”字片段的容量和“了”字片段的容量之和是否满足嵌入秘密信息所需的容量,如果满足所需容量,则嵌入单元的识别终止;否则,提示“嵌入单元不足,无法嵌入秘密信息”;
所述的秘密信息的嵌入包括以下几个步骤:
步骤1:将嵌入单元识别步骤里排序好的顺序对同义词嵌入单元集合使用混合进制编码算法计算出每一嵌入单元的比特值;
混合进制编码算法是,将每个嵌入单元的同义词集合中的词语从0编号,每个拥有同义词的词语都对应一个进制不同的一位数字,将文本中所有的同义词联合在一起,就可以看做是一个混合进制数;每一个嵌入单元对应的数字即为这个嵌入单元的比特值,它是水印信息转换的整数除以嵌入单元元素个数的余数值;计算完所有嵌入单元的比特值后,然后再按嵌入单元的物理顺序对比特串进行排序;
步骤2:取出一个分句中的一个词语,判断是否与嵌入单元集合当中当前的嵌入单元内容以及所在小句是否匹配,如果不匹配,则继续步骤2中的下一个词语;否则,转至步骤3;
步骤3:依据比特串当前的比特值对嵌入单元的内容进行替换,在替换的时候,因为同义词集合当中存在着繁体字的同义词,因而替换后的文本当中就有可能存在着繁体字;同时,比特串及嵌入单元集合的索引加1,并转至步骤2;
步骤4:待所有嵌入单元都已替换完毕,判断“的”字片段嵌入单元的个数是否为0;如果为0,则水印信息的嵌入过程完成,返回含密文本;如果不为0,则转至步骤5;
步骤5:使用扩频编码对“的”字片段嵌入单元进行编码以及秘密信息的嵌入,首先依据规则计算每一个“的”字片段中可删除“的”的位置,并将分句序号及删除“的”后的句子记录下来,然后计算片段中“的”的个数,并规定“的”个数为奇数时,表示比特0,为偶数时,表示比特1;根据需嵌入的比特值来改变片段中“的”的数目以达到嵌密的目的;改变“的”数目需遵守的规则是“先删除,后增加”,即片段中有可删除“的”的分句,就进行删除操作,如果有多个分句可以删除,就随机选择一个进行操作;如果分句中没有分句可以进行删除操作,则进行“的”的增加操作,增加操作与删除操作类似;如果片段中既没有可删除“的”的分句,也没有可增加“的”的分句,则提示“嵌入单元不足,无法正确嵌入秘密信息”;
步骤6:待所有“的”字片段嵌入单元都已替换完毕,判断“了”字片段嵌入单元的个数是否为0;如果为0,则水印信息的嵌入过程完成,返回含密文本;如果不为0,则转至步骤7;
步骤7:“了”字片段嵌入单元秘密信息的嵌入:
“了”字片段秘密信息的嵌入与“的”字片段秘密信息的嵌入相同;
步骤8:待所有“了”字片段嵌入单元都已替换完毕,则水印信息的嵌入过程完成,返回含密文本;
所述的秘密信息的提取包括以下几个步骤:
步骤1:依次对照嵌入单元识别步骤中识别出来的同义词嵌入单元找出其在超短文本中的位置,即索引号,并将其记录下来;
步骤2:依据简体文本中的嵌入单元的索引号在原始文本中找出每一个嵌入单元,并与简体文本中的嵌入单元一一对应的记录下来;
步骤3:取出一个分句中的一个词语,判断是否与嵌入单元集合当中当前的嵌入单元内容以及所在小句是否匹配,如果不匹配,则继续步骤3中的下一个词语;否则,转至步骤4;
步骤4:取出词语对应的原始文本中的词语,在当前嵌入单元集合中的嵌入单元的同义词中查找词语的索引号,所得出的索引号即是此词语的比特值;嵌入单元的索引加1,并转至步骤3;
步骤5:待所有嵌入单元的比特值都提取出来后,将比特串按照嵌入单元的逻辑顺序进行排序,并以逻辑顺序将比特串恢复成整数;
步骤6:判断“的”字片段嵌入单元的个数是否为0,如果为0,则秘密信息的提取完成,转至步骤10;如果不为0,转至步骤7;
步骤7:计算每一个“的”字片段中“的”的个数,如果为偶数,则说明此片段表示比特0,否则,表示比特1;将提取出来的比特串转换为整数,并与前面提取出来的整数进行叠加;
步骤8:判断“了”字片段嵌入单元的个数是否为0,如果为0,则秘密信息的提取完成,转至步骤10;如果不为0,转至步骤9;
步骤9:计算每一个“了”字片段中“了”的个数,如果为偶数,则说明此片段表示比特0,否则,表示比特1;将提取出来的比特串转换为整数,并与前面提取出来的整数进行叠加;
步骤10:将提取出来的整数转换为其对应的水印信息;
所述的水印验证包括:
预先选取一些语料作为训练语料,统计同义词词典中的同义词在训练语料中出现的频次,并将其以同义词或频次的形式记录下来;此训练过程只进行一次,在水印验证过程中,只需用到训练过程中统计出来的结果,具体按以下几个步骤进行:
步骤1:给定特征阈值δ,δ=0.6,根据预先工作中统计出来的结果选取在训练语料中出现频率大于δ的特征词作为特征元素;
步骤2:统计步骤1中选取的特征元素在检测文本中出现的频率r;
步骤3:比较频率r和检测阈值Φ,Φ=0.7,若r<Φ,则认为该检测文本中含密,否则认为该检测文本中未含密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210148620.0A CN102682248B (zh) | 2012-05-15 | 2012-05-15 | 一种中文超短文本的水印嵌入和提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210148620.0A CN102682248B (zh) | 2012-05-15 | 2012-05-15 | 一种中文超短文本的水印嵌入和提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102682248A true CN102682248A (zh) | 2012-09-19 |
CN102682248B CN102682248B (zh) | 2015-01-07 |
Family
ID=46814153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210148620.0A Expired - Fee Related CN102682248B (zh) | 2012-05-15 | 2012-05-15 | 一种中文超短文本的水印嵌入和提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102682248B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383814A (zh) * | 2016-09-13 | 2017-02-08 | 电子科技大学 | 一种英文社交媒体短文本分词方法 |
CN111199746A (zh) * | 2020-01-08 | 2020-05-26 | 中信银行股份有限公司 | 信息隐藏方法以及隐藏信息提取方法 |
CN112000970A (zh) * | 2020-08-20 | 2020-11-27 | 湖南财政经济学院 | 一种基于部件关联图的文本无载体隐写方法及系统 |
CN112948776A (zh) * | 2021-02-03 | 2021-06-11 | 海信集团控股股份有限公司 | 一种数字水印添加方法、装置、电子设备及存储介质 |
CN114662448A (zh) * | 2020-12-22 | 2022-06-24 | 永中软件股份有限公司 | 办公软件中的公文生成方法、计算装置及计算机可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945622A (zh) * | 2006-10-25 | 2007-04-11 | 北京北大方正电子有限公司 | 一种数字水印嵌入与提取方法及装置 |
US20070244693A1 (en) * | 2006-04-14 | 2007-10-18 | At&T Corp. | Natural Language Watermarking |
CN101751656A (zh) * | 2008-12-22 | 2010-06-23 | 北京大学 | 一种水印嵌入和提取方法及装置 |
-
2012
- 2012-05-15 CN CN201210148620.0A patent/CN102682248B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070244693A1 (en) * | 2006-04-14 | 2007-10-18 | At&T Corp. | Natural Language Watermarking |
CN1945622A (zh) * | 2006-10-25 | 2007-04-11 | 北京北大方正电子有限公司 | 一种数字水印嵌入与提取方法及装置 |
CN101751656A (zh) * | 2008-12-22 | 2010-06-23 | 北京大学 | 一种水印嵌入和提取方法及装置 |
Non-Patent Citations (5)
Title |
---|
Q. MEI, E. K. WONG, N. MEMON: "Data Hiding in Binary Text Documents", 《SECURITY AND WATERMARKING OF MULTIMEDIA CONTENTS III》, 31 December 2001 (2001-12-31) * |
刘文戈: "基于文本文档的信息隐藏技术研究", 《中国优秀硕士学位论文全文数据库》, 31 October 2010 (2010-10-31) * |
林建滨,何路,李天智,房鼎益: "一种抗攻击的中文同义词替换文本水印算法", 《西北大学学报( 自然科学版)》, vol. 40, no. 3, 30 June 2010 (2010-06-30) * |
陈彦良: "信息隐藏若干算法的研究与应用", 《中国优秀硕士学位论文全文数据库》, 31 May 2007 (2007-05-31) * |
陈芳,王冰: "基于文本字体的信息隐藏算法", 《计算机技术与发展》, vol. 16, no. 1, 31 January 2006 (2006-01-31) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383814A (zh) * | 2016-09-13 | 2017-02-08 | 电子科技大学 | 一种英文社交媒体短文本分词方法 |
CN111199746A (zh) * | 2020-01-08 | 2020-05-26 | 中信银行股份有限公司 | 信息隐藏方法以及隐藏信息提取方法 |
CN111199746B (zh) * | 2020-01-08 | 2022-09-06 | 中信银行股份有限公司 | 信息隐藏方法以及隐藏信息提取方法 |
CN112000970A (zh) * | 2020-08-20 | 2020-11-27 | 湖南财政经济学院 | 一种基于部件关联图的文本无载体隐写方法及系统 |
CN112000970B (zh) * | 2020-08-20 | 2023-05-23 | 湖南财政经济学院 | 一种基于部件关联图的文本无载体隐写方法及系统 |
CN114662448A (zh) * | 2020-12-22 | 2022-06-24 | 永中软件股份有限公司 | 办公软件中的公文生成方法、计算装置及计算机可读介质 |
CN112948776A (zh) * | 2021-02-03 | 2021-06-11 | 海信集团控股股份有限公司 | 一种数字水印添加方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102682248B (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10482222B2 (en) | Methods, apparatus, and articles of manufacture to encode auxiliary data into text data and methods, apparatus, and articles of manufacture to obtain encoded data from text data | |
Mubarak et al. | Using Twitter to collect a multi-dialectal corpus of Arabic | |
Xiang et al. | Linguistic steganalysis using the features derived from synonym frequency | |
Chang et al. | Practical linguistic steganography using contextual synonym substitution and a novel vertex coding method | |
Shirali-Shahreza et al. | A new synonym text steganography | |
Singh et al. | A novel approach of text steganography based on null spaces | |
Yadav et al. | A novel approach of bulk data hiding using text steganography | |
Caliskan et al. | Translate once, translate twice, translate thrice and attribute: Identifying authors and machine translation tools in translated text | |
CN103294959B (zh) | 一种抗统计分析的文本信息隐藏方法 | |
CN102682248A (zh) | 一种中文超短文本的水印嵌入和提取方法 | |
Alginahi et al. | An enhanced Kashida-based watermarking approach for Arabic text-documents | |
Vidhya et al. | A method for text steganography using malayalam text | |
CN103544408A (zh) | 一种基于复合字体的pdf文档隐藏信息嵌入和提取方法 | |
Wang et al. | GAN-GLS: Generative Lyric Steganography Based on Generative Adversarial Networks. | |
CN104331400A (zh) | 一种蒙古文编码转换方法和装置 | |
Prasad et al. | A new approach to Telugu text steganography | |
CN105404614B (zh) | 一种基于主谓语编码的文本水印嵌入以及提取方法 | |
Liu et al. | Text steganography based on online chat | |
Yu et al. | Detection of synonym-substitution modified articles using context information | |
Huang et al. | A Homophone-based Chinese Text Steganography Scheme for Chatting Applications. | |
Liu et al. | A technique of high embedding rate text steganography based on whole poetry of song dynasty | |
Bo et al. | An information hiding method for text by substituted conception | |
Xiang et al. | A word-frequency-preserving steganographic method based on synonym substitution | |
Zheng et al. | Hiding information by context-based synonym substitution | |
Kermanidis | Capacity-rich Knowledge-poor Linguistic Steganography. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150107 Termination date: 20160515 |
|
CF01 | Termination of patent right due to non-payment of annual fee |