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