一种软件水印算法探究.docVIP

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

一种软件水印算法探究摘要:作为一种新的软件保护方式,软件水印和传统的软件保护方法相比有着很大的不同。软件水印算法运用的不单是加密技术,它是通过把一些秘密信息嵌入到软件的代码中,如果有需要,就可以利用这些代码提取软件中所需要的信息,然后利用这些信息来证明软件真正的版权问题。 关键词:软件水印;水印算法;版权保护 中图分类号:TP312文献标识码:A文章编号:16727800(2012)007002703 作者简介:宋燕红(1969-),女, 河北清河人, 北京电子科技学院副教授,研究方向为计算机软件理论与安全。 0引言 目前,绝大部分软件的版权保护都是运用加密的方法,加密方法有两种,分别是硬件加密和软件加密。通常所说的硬件加密是指在安装、运行软件的时候要用一些特别的硬件来启动,例如Vbox、软件狗、SecuROM或者SafeDISC等;而软件加密是没有必要使用硬件装置的,可以说省去了一些硬件成本,但和硬件加密相比其安全性稍微逊色一些。我们了解的盗版软件一般分两种:①通过随意复制并分发或刻意去拷贝软件;②未得到版权所有者本人的认可,向个人开发出的程序中放入一小部分或是很大一部分甚至是全部的软件代码。一般情况下加密技术能够免去第一种较为简单的盗版手段,也能够预防软件被盗,但是就第二种盗版手段,加密了的技术已经没有它的用武之地了,尤其当那些想要盗用版权的人具有较高的破密技能,加密效果更会大打折扣,甚至会失效。因此,我们要用新技术来杜绝盗版现象的发生,这样便迎来了软件水印技术的时代。严格意义上来讲,软件水印技术所采用的方法是事后追查,虽然这种技术无法完全阻止盗版的发生,但是能够破坏盗版软件,还可以提供盗版行为的证据。 1水印算法的原理 软件水印的想法是受到数字水印的启发而形成的。近年来数字水印的应用不断扩大,并引起了大家的极大研究兴趣,于是产生了大量的研究成果。作为信息隐匿的其中一个分支,它的主要技术思想是:通过编码嵌入信息,接着在那些已知的信息例如隐秘的密钥的控制下嵌入一些诸如文本、图像、音频、视频的载体相关信息。与其它的信息保密技术不同的是当前我们采用数字水印技术的目的是为进一步验证载体信息知识产权的归属情况,或者说描述载体信息。比如说我们在一幅图画里面嵌入作者的姓名以此来证明这幅画的作者和所有权,还有就是嵌入到数字产品里面一些产品的质量、产地、生产日期等信息。图1说明了数字水印的嵌入、检测过程。 软件数字水印简称软件水印,其实软件水印严格上来讲也可以说是数字水印的一种,不同的是软件水印里面的程序是水印的载体。运用软件水印来使计算机的软件代码版权得到保护,这种保护不但能够使用源代码,也能够使用机器代码,其最为重要的就是尽量杜绝非法拷贝和篡改。在技术的使用过程中,我们发现不同软件的载体,如图像、音频及视频载体都可以接受不同程度的扭曲,但软件要求水印后原来的功能不能发生变化。 2常用的抗软件水印攻击技术 软件水印技术虽好,但是在使用的过程中会不断地出现软件水印技术的攻击或者说是破解情况。我们针对各种软件的水印攻击,主要研制出了混淆及防改动的抗软件能力的水印袭击技术。 2.1混淆技术 通常使用的水印手段和软件版权防护技术都是软件逆工程技术。使用这样的技术来分析软件的目标系统,首先将构件与构件之间的关系、系统的构件关系考察清楚,接着用高层抽象等一系列的方法来表现出软件目标系统的实现过程,再进行反编译。 混淆技术的基本思想就是把原始代码的恢复难度加大,进行混淆处理主要是为了增加程序被反编译的难度,还有就是即便我们的程序被反编译成功了,那么程序的阅读和理解也无法进行。当然,按照处理程序代码的原则,程序代码被混淆以后最终的执行结果和混淆前也是一样的,惟一的区别就是程序代码被混淆以后会没有规则,反编译的难度会大大增加。混淆还有一个特点就是不可逆,我们在对程序代码进行混淆时,会去除一些对程序正常运行不影响的信息,这样处理过的程序会更加难以阅读、理解。 混淆代码的主要方法是使得标识符指示的功能失效、对文字和字符串进行加密、在代码里加入一些欺骗指令、插入各种加大反编译难度的载体信息。我们通常使用的混淆技术就是用任意名称来代替代码中所有的标识符,可是这种方法的效果不是特别好,有的攻击者可以根据代码上下文来推断标识符的意义,如果花费足够的时间和精力就可以进行反编译了。为了解决这种安全隐患,可以运用字符串加密混淆技术。 2.2防篡改技术 在遇到程序被攻击者修改的情况时,需要立刻阻止这个程序的运行。比如说在程序里虽然有了水印,但那些被标记过的代码被改了结构,或者被病毒感染了、程序属于商务应用等问题依然存在,若程序中关乎安全问题的一些敏感的地方被修改了,就不能允许程

文档评论(0)

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

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

1亿VIP精品文档

相关文档