论文部分内容阅读
随着通信技术、计算机科学技术等高科技的飞速发展,软件产品越来越被开发出来服务于我们的日常生活。软件产品具有不可磨损性、耐老化性、精准性、重复性等优点,人们越来越依赖各种各样的软件产品。然而很多用户却采取非法拷贝、恶意攻击、窃取、篡改等不正当途径来获取软件的使用权,这给软件的所有者带来了精神和金钱损失,所以软件保护就变得刻不容缓。传统的软件保护技术主要有:序列号保护技术、时间和功能限制、注册保护、光盘软件保护、网络软件保护、软件水印等。软件水印是一种有效的软件保护技术,有着传统的技术所不具有的优势。在软件水印中动态图软件水印技术是目前研究的热点,它属于动态水印,是在程序的运行过程中动态地生成,具有不可捕捉性,很难被恶意攻击者定位、分析,从而窃取、篡改和使用。本文首先介绍了关于软件水印的基础概念,包括具体定义、一般模型、不同的分类、水印的攻击方式和保护技术、水印方案的评价指标。紧接着引入本课题的研究重点——动态图软件水印,详细阐述了动态图水印的理论依据、实施步骤、CT算法、常见的几种编码结构。在总结上述各种编码结构的优缺点的基础上,提出了本文的改进编码方案IKPPCT,该方案是以KPPCT编码方案为参考的,改变了KPPCT编码方案的数据结构,扩充了参与编码的属性字段,这样可以很大程度的提高数据编码率。在第四章中论述了IKPPCT编码方案的结构特点、方案的实现步骤、防篡改思想的应用。实现步骤中主要有:选取水印值、RSA加密水印值、分割水印值、搜寻合适的标记点进行标记、执行嵌入水印代码、提取水印值。最后从以下6个方面进行验证:安全性、隐蔽性、数据编码率、最大水印值、性能过载、鲁棒性,经过理论分析和实验验证,证明本文的改进方案是可取的,是有效的。每个编码方案都有着不可避免的缺点,我们应该根据实际情况选择合适的编码结构进行动态图水印的嵌入,并能在嵌入水印的同时更有效的保护水印。本文的主要创新点是改进了编码结构使得编码率大大提高,同时利用防篡改技术中的增加不透明谓词和不透明方法来保护水印。