论文部分内容阅读
计算机软件业迅猛发展,针对软件的盗版与破解也随之泛滥起来。因此,如何对软件版权以及软件程序核心内容进行保护,已经成为软件安全领域中的一些棘手问题。本文以实现对计算机软件进行安全保护为目标,利用水印技术、防篡改技术、逆向工程技术、动态分析技术,并结合信息隐藏的思想来解决软件保护特别是软件版权保护中的一些关键问题。本文的研究涉及到了软件安全、数字水印、密码学、图论、算法设计、软件工程等多个领域的知识。主要完成的研究工作有: 软件保护技术的研究,包括信息隐藏技术、逆向工程技术、篡改抵制技术、加密解密技术、代码混淆技术、软件多样性以及Java软件安全性等。 本文对软件水印技术特别是动态图软件水印技术进行了系统的研究,包括水印编码方法,水印嵌入方案,水印提取方法以及水印保护策略的研究。实现了经典的K基数循环链表和PPCT水印图拓扑结构,并且结合这两种结构的特点,对PPCT水印结构进行了改进与实现。分别从理论上和实验上对三者的可用性、隐蔽性和抗攻击性进行了详尽的分析。 提出了一种多常量编码的、防篡改的动态图软件水印方案,该方案引进了一种伪水印的思想,可以有效地增强动态图水印的隐蔽性和抗攻击性,并且对于软件自身也起到了防篡改的作用。同时,对该方案的原理、可行性以及优点从理论上进行了分析。 实现了一个软件水印系统原型——JMark1.0,该系统是一个基于Java字节码文件的综合软件水印系统,也是本文部分研究成果的一个体现,主要包括静态数据软件水印和动态图软件水印两个子系统。并且我们在系统中需要进一步扩展的部分留出了相应的接口以待完善。 最后以原型系统为依据做了一系列的测试实验,分别对静态和动态软件水印系统的正确性、鲁棒性以及水印加载所带来的性能过载进行了实验分析,并对系统中所实现的三种图水印结构进行了数据率的理论分析。