一种HASH变换验证的软件与水印算法实现.docVIP

一种HASH变换验证的软件与水印算法实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
--(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!

一种HASH变换验证的软件水印算法实现摘要:动态数据结构水印就是将水印隐藏在程序动态建立的图结构拓扑中,水印提取时的完整性是其关键技术。本文基于改进的PPCT水印构造算法,通过Hash数学变换与验证,实现对水印的动态嵌入和可靠提取。分析与实现表明,本方法具有较强的安全性和鲁棒性,能够较好地实现软件的版权保护。 关键词:动态图水印;PPCT树;Hash变换;水印攻击 Transformation of a HASH verification software watermarking algorithm Liu Ya-qi Abstract: Dynamic data structure is to hide the watermark in the program dynamically builting graph structure topology, how to determine the integrity when the extracted watermark. Based on an improved watermark PPCT construction algorithm, through the Hash mathematical transformation and verification, to realize the dynamics of the watermark embedding and reliable extraction. Analysis and implementation show that this method has strong security and robustness, can be used better for software copyright protection. Key words: Dynamic map watermarking;PPCT tree; Hash transformation;Watermark attack 动态图水印技术是近年来被广泛研究与讨论的一种软件水印技术。Collberg和Thomborson首次提出并讨论了动态图水印(Dynamic Graph Watermark,DGW)[1],它是在软件运行时动态地将水印信息转化成某种图结构并隐藏在软件代码中,即把软件水印隐藏在程序动态建立的图结构拓扑中。由于这种图结构包含许多指针并且是在运行时动态生成,且指针的具体值在每次运行时不同,因此动态图水印算法不容易受到代码优化和代码迷乱等水印攻击的破坏。但是这种图结构在抵抗篡改、裁减等恶意攻击方面表现较差。 为了提高动态图水印技术的抗攻击能力,文献[2]提出多常量编码伪水印来对动态图水印进行保护的方法。该算法通过创建多个对宿主程序功能性有依赖关系的改进型PPCT (Improved Planted Plane Cubic Tree,IPPCT)结构的伪水印,对真实水印起到了防篡改的作用,增加了攻击者的攻击难度。文献[3]提出了基于二次剩余理论和Rabin 密码体制的水印信息方法,该算法在多个水印与宿主程序之间建立功能性的依赖关系,对真实水印起到掩盖作用,增加了攻击难度。文献[4]提出基于门限方案的动态图水印算法——AB 算法,把水印信息分为无关联 n份嵌入,在还原原始水印信息时,提取其中 t(t≤n)份以上的份额就可以恢复原始水印,提高嵌入水印的程序经攻击后恢复水印的成功率。文献[5]提出一种动态自我验证的软件水印防篡改技术,利用线性哈希函数对水印结构进行分块计算, 采用常量迁移技术使完整性检查隐藏在程序本身正常的逻辑判断语句中,对其篡改会导致应用程序功能错误。但这些方法减少了程序可容纳的水印信息量,水印恢复时涉及复杂的逆运算,增加了计算量和计算时间。 本文提出一种基于节点的HASH变换验证软件水印算法,当水印遭到破坏(水印代码被部分删除或优化等),程序能够立即感知并终止软件的运行对软件及水印本身提供保护。1 动态图水印信息的形成 根据数论中的大数分解难的问题,可选择一个代表版权信息的大自然数N 作为水印数,并将此大数N 转化成某种图拓扑结构后嵌入到软件程序代码里。只有合法用户才能将检测到N 分解成大素数P 和Q 的乘积,从而证明其合法版权通过拓扑类型的动态图数据结构水印隐藏此大数,如果能从软件中有效提取出此大数,且此过程能够在有限时间内完成,则证明对包含水印的待验证软件具有知识产权。其中,图的拓扑结构可以由面向对象程序设计中的对象作为节点构成,即图的编码采用改进的PPCT树。如图1表示: 图1 用户水印信息转换成改进的PPCT树 其具体过程为: (1)选择一个水印数字。 (2)将这个水印数字用一个水印图来表示。 (3)构造一段

文档评论(0)

lingyun51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档