原因是水印深入到文本的内容之中与文本内容相结合,其主要体现有以下两个优点:
①对纯清除水印的攻击(因为有时文本内容的修改不是攻击者的目的),攻击者希望保留文本内容的情况下篡改或清除水印,但基于内容嵌入水印的特点决定了攻击者不易达到此目的,相反,基于属性的水印方法意着攻击者希望保留文本内容的情况下篡改或清除水印的目的往往容易达到。
②对纯文本内容的攻击(攻击者希望保留水印情况下的内容修改),这种基于文本内容的水印嵌入方式意着攻击者同样难以达到这个目的。
基于以上的几点考虑,本文提出的半脆弱水印算法:
①对纯清除水印的攻击,本方法的抗攻击性强于一般的基于格式的水印方法。一方面原因是此方法的嵌入方式是多样的,即基于属性的3种不同顺序的水印特征分别独立地嵌入,水印遭全面破坏的几率小:一方面,基于WORD中的range对象(如汉字等)的NoProofing属性来标定嵌入对象,不易被发现和修改,WORD文件的菜单操作不能清除或修改此水印特征,不通过编程不能够发现、添加和修改此水印特征,因此这种属性的应用具备较强的隐蔽性和抗攻击性。
②对纯文本内容的攻击,就一般的基于格式的水印方法而言,如攻击者对文字进行字符的逐个替换,此时因WORD本身的继承性,替换后字符的属性保持不变,即水印保留的情况下文本内容遭破坏且这种破坏不能为水印算法所发现,攻击者达到了目的;而本方法在水印嵌入时将原始文本和原始水印一起通过MD5进行了加密处理后嵌入到文本中去,这样只要能提取水印就能回复原始文本,就能够比对检查文本受到破坏的情况。
综上可知,本文的水印方法较好地融合了基于格式和基于内容的两种水印方法的优点。
3 实验及性能设计
3.1 水印隐蔽性实验设计
对一个中英文混合的 word 文本文件进行嵌入实验。嵌入水印前的原文本,嵌入水印后的水印文本可见,该算法所嵌入水印的隐蔽性好,对文本的视觉效果完全没有影响。
该算法将水印空间扩展到文本中的所有字符,水印容量大小虽仍受文本自身长度限制,但已在最大范围内扩展了水印空间容量,且没有影响水印的性能。
该算法的水印嵌入修改两个不同属性,在对文本的常规操作中,如果清除了一个属性的水印特征,仍然能根据剩下的一个属性提取水印。对文本而言,理想的鲁棒性水印应该对合法用户的正常编辑操作是允许的,且水印不因这些操作而轻易丢失。以往基于格式和外部特征的水印技术很难保证这一点,简单的格式重排或外部特征修改往往会使水印信息轻易丢失;该算法的水印不再依赖于文本格式或字符的外部特征,对文本诸如调整格式,段落,字体,间距等常规编辑操作有较好的鲁棒性。
3.2文本水印的编程实现
实验环境选取Windows98以上的操作系统,把中文的Word文件作为水印载体,使用基于C++编制水印程序,实现本文研究的中文文本的水印算法并进行各项测试实验。
水印的半脆弱性实验又分为针对文字的替换攻击实验,针对文字内容的增添攻击实验,针对文字内容的删除攻击实验。
程序的总体架构如图3.1所示。
图3.1程序的总框架图
3.2.1水印的嵌入模块
程序运行时,程序先对选择的文本执行预处理(选点分组),接着生成最终水印数据:输入的原始水印信息和原始文本通过Hash函数算法求得128位摘要信息作为此文件的最终待加载水印数据,最后将水印分组嵌入到文本中。 基于WORD文档的防篡改水印系统设计与实现(7):http://www.751com.cn/jisuanji/lunwen_1627.html