论文部分内容阅读
软件水印是一种常见的软件保护手段,它利用一定的算法,将可以表征知识产权的信息嵌入软件之中。出现软件知识产权侵权行为时,软件知识产权人可以提取嵌入软件之中的知识产权信息,表征自己的知识产权,维护自身利益。软件水印是软件保护技术中较为年轻的一个方向,现有的软件水印方案缺乏统一的理论基础,安全性上大部分依赖隐蔽性,对于部分窃取攻击等新式攻击方式缺乏抵抗能力。 针对上述问题,本文提出了一种基于神经网络的软件水印方案。本方案利用神经网络函数拟合器的功能,将程序核心逻辑的分支跳变与软件水印信息拟合于同一神经网络中。本方案利用代码混淆技术构造水印信息的触发器,将隐藏水印信息的神经网络嵌入具有控制流混淆功能的代码混淆模块中。相比现有软件水印方案,本文提出的基于神经网络的软件水印方案具有与程序执行逻辑紧密相连、安全性由神经网络的不可解释性和控制流混淆机制共同保证,并且可以抵挡部分窃取攻击,是一种新式的软件水印方案。 除此以外,本文还针对目前软件水印研究领域缺乏可操作性的软件水印评价标准这一问题,提出了一种通用水印评价方案。该方案以性能测试工具SPECCPU2006作为测试集,针对软件水印的执行效率、信息嵌入率、隐蔽性和抗攻击性四个重要评价指标设计了评价方法。本方案避免了现有水印评价方案程序语言单一、水印方案原理单一的问题。利用上述通用水印评价方案,对本文提出的软件水印方案进行了评价。实验结果表明,本文提出的水印方案在执行效率、信息嵌入率、隐蔽性和抗攻击性上表现较好,是一种具有实用价值的软件水印方案。