论文部分内容阅读
计算机网络技术的飞速发展对软件产品的版权保护带来了严峻的挑战。传统的软件保护技术主要采用密码学理论,通过对软件加密来实现。但随着人们对加密技术认识的不断深入,用软件加密技术保护软件版权的弊端也渐渐暴露。且使用加密技术的软件,即使知晓盗版发生也很难证明软件所有者的版权,更无法追踪到软件的盗版源。软件水印是一种软件防盗版的技术,其通过把嵌入在程序中的预制信息作为水印,在发生版权纠纷时,通过水印信息来证明版权或追查盗版源。软件水印通常分为静态水印和动态水印,本文研究的动态图水印是动态水印的一种,它是将拓扑图结构作为水印信息的载体嵌入到程序中,是一种具有较高鲁棒性的软件保护技术。本文详细介绍了动态图软件水印相关技术,并针对目前动态图软件水印存在的不足,进行了深入研究,完成的主要工作如下:1.对于动态图软件水印,攻击者可以采用分析和调试技术了解程序的结构,通过对程序的分析,定位水印嵌入的位置,然后修改甚至擦除水印。针对这一问题,提出了基于动态混淆技术的动态图软件水印方案,将动态混淆技术和动态图软件水印技术结合,水印图选用可归约排列图(RPG),同时嵌入水印的程序通过代码混淆,增加攻击者反编译程序的难度,提高软件水印方案的抗攻击性。通过与传统的软件水印方案进行比较分析,结果表明该方案具有较高的鲁棒性和数据率,且在抵御代码分析方面有明显优势。2.针对动态图水印容易遭到攻击、遭到攻击后不易恢复的问题,提出了一种水印信息可恢复的软件水印方案。首先提出了TDPPCT(Tamper-Detecting Planted Plane Cubic Tree)结构,该结构相比PPCT结构提高了软件水印的数据率和动态比特率,且TDPPCT结构蕴含的Hash映射能检测提取的水印图是否正确。线程水印具有较高的隐蔽性,本方案将动态图软件水印和线程水印技术结合起来,图结构TDPPCT用来表示水印信息,程序线程关系矩阵用于隐藏图结构的纠错码信息。提取水印图的过程中一旦检测到水印图遭到篡改,提取程序执行时产生的线程关系中的纠错码信息,恢复被篡改的水印信息。理论分析和实验表明,与其他动态图软件水印方案相比,本文提出的软件水印方案,在数据率和安全性方面都有较好的表现,并能一定程度上恢复被篡改的水印信息。