论文部分内容阅读
随着信息时代的到来,信息成为一种重要的战略资源。信息技术改变着人们的生活和工作方式。信息科学已经成为最活跃的学科领域之一,并且信息产业成为新的经济增长点。软件作为一种典型的数字产品,随着信息技术和网络技术的飞速发展,软件产业正迎来巨大的发展机遇,同时也面临着诸多挑战。从网络上下载、复制、传播和升级软件产品变得非常方便,但随之而来的副作用是通过网络传输的软件产品很容易被恶意的个人或团体在未经许可的情况下非法使用,对信息安全构成了极大的威胁并造成了巨大的损失。因此如何既充分利用因特网的便利,又能有效地保护软件的知识产权和数据的完整性已经成为一个亟待解决的问题,更是目前主要的信息安全问题,受到国际上的高度重视。相对于多媒体水印而言,软件水印更具现实意义,更能为我国信息化建设带来巨大的经济效益。数字软件水印通过在被保护的软件程序中嵌入某些秘密信息,即水印来证明软件的版权归属或者其真实性和完整性。由于软件具有行为确定性、行为自明性及执行环境依赖性等特有性质,使得软件水印不能像多媒体水印那样,依靠多媒体中存在的大量冗余信息进行水印编码。只能依靠软件本身的一些特性来嵌入水印信息。本文研究的重点在于探讨如何利用程序中的代码变化来实现软件篡改检测的脆弱水印方案。本文的创新工作如下:(1)针对软件的完整性验证需求,提出一种基于等价代码替换的脆弱软件水印方案。该方案利用等价代码替换思想来实现水印嵌入。所生成的水印与软件内容密切相关,具有对不同类型攻击的高度敏感性。并且由密钥控制的水印生成和水印嵌入位置确定方法增强了水印方案的安全性。该方案不仅能有效地检测篡改,而且具有进一步判别篡改类型的能力。(2)提出一种基于扩频技术的脆弱软件水印方案。该方案对所有基本块内指令(组)出现的频次分别提取矢量,并且构造矢量矩阵,通过PCA变换生成水印,利用修改矩阵内的矢量来嵌入水印。把水印信息编码到整个代码中,不仅提高了水印的隐蔽性,而且保护了全部代码。