论文部分内容阅读
计算机行业的发展已逐渐把我们的社会转向了一个信息化、智能化、多元化的社会,无论是在生活、工作还是科学研究方面都渗透着计算机的影响。正是因为计算机的出现,我们的生活和工作才变的更加的便捷和丰富。计算机软件行业作为计算机领域的一个重要组成部分,其地位和重要性是不言而喻的。计算机行业的发展的一个主要动力便是来自软件行业的进步。然而,在现今的社会中,软件行业正面临着各种威胁和阻碍。例如,软件盗版、恶意篡改代码以及获取软件中的保密数据等,这些非法行为不仅违反了软件版权的问题,更主要的危害是严重打击了软件开发者开发新的更为实用的软件的动力。因此,为了保证计算机软件行业的正常发展,对软件安全技术的研究有着重要的现实意义。软件安全技术分为两种,一种是事前保护技术,例如加密算法、代码混淆、加密狗等,另外一种则是事后保护技术,例如软件水印、数字水印等技术。本文将事前和事后技术相结合,提出了一种基于代码混淆的软件水印保护技术。本文首先提出了三种软件水印的威胁模型,并介绍了现阶段软件保护的主要技术。然后根据代码混淆的特点提出了相关设计原则,介绍了代码混淆的几种常用技术,针对其设计和实现的特点对代码混淆方法进行了详细的分析和说明。本文针对软件水印的设计框架进行了深入的分析,并在此基础上引入了零水印的设计思想。基于代码混淆的特点和零水印的设计思想提出了基于代码混淆的零水印设计方案,其核心内容则是将编码后的水印信息通过代码混淆的过程嵌入到软件体中,在不增加任何冗余水印代码的基础上将水印信息嵌入软件中,从而提高软件水印的安全性。为说明基于混淆的软件水印方案的可行性,本文提出了一个简易的原型系统,通过对该系统进行相关测试并通过将该系统和其他水印方法进行抗攻击能力对比,从实验角度证明该基于代码混淆的软件水印方法的可行性。然后文章从该方案的正确性、隐蔽性以及鲁棒性角度进行诠释和分析,从而在理论的层次上对其进行了说明。