软件保护中的扩频水印研究

发布时间:2019-03-07 21:50
【摘要】:伴随着互联网技术的飞速发展,数字产品的传播也得到了极大的方便,不过随之而来的副作用也引起了人们的广泛关注和重视。其中软件作为一种典型的数字产品,其开发需要耗费大量的人力、物力和财力,但复制和传播却很容易,这使得软件盗版猖獗,严重损害了软件开发者的利益,打击了其开发积极性。软件水印就是为了解决软件知识产权证明问题而发展起来的一门学科,通过将软件的版权信息或用户的个人身份信息嵌入软件之中,在必要时提取出来以证明软件的版权归属或追踪到盗版源。 本文介绍了软件保护和其中的一些常用技术,包括软件加密、代码混淆、软件防篡改、软件水印和软件胎记,详细阐述了其中的软件水印技术,包括软件水印的定义、模型、分类和攻击方式等,其中扩频软件水印具有较好的隐蔽性和鲁棒性,它根据扩频技术的原理,修改从软件中提取出的特征矢量的各分量值从而嵌入水印,这样每个分量上所隐藏的水印信息很少且不可被随意检测到。 在研究已有扩频软件水印算法的基础上,提出了一种基于局部指令统计的扩频软件水印算法。算法按一定方式选取载体指令,载体指令出现次数最多的方法即载体方法,并根据原始程序哈希值调整这一对应关系,这样不同的程序对应不同的载体指令,攻击者共谋攻击难度加大,即使推测出某一载体指令也无法找到其重新对应的载体方法。嵌入水印时,只修改载体方法内对应载体指令的出现次数,检测水印时只对载体方法内对应载体指令的变化情况进行统计分析,这样攻击者对程序所做的修改只要不是在载体方法内就不影响水印的检测。算法对水印信息附加了循环冗余校验码,可对水印信息进行纠错,从一定程序恢复被破坏的信息位。 最后分析了算法所涉及的相关技术,包括对Java类文件的修改、代码本、指令等价替换和插入冗余指令、数据校验码以及如何选取载体指令和载体方法,并针对Java字节码在SandMark平台上进行了算法实现,并进行了性能测试和抗攻击性测试,实验结果表明,在进一步提高水印抗攻击性的同时,嵌入的水印对程序的性能影响较小。
[Abstract]:With the rapid development of Internet technology, the spread of digital products has been greatly convenient, but the following side effects have also attracted widespread attention and attention. Software as a typical digital product, its development needs a lot of manpower, material resources and financial resources, but it is easy to copy and spread, which makes software piracy rampant, and seriously damages the interests of software developers. Hit its development enthusiasm. Software watermarking is a discipline developed to solve the problem of software intellectual property proof. By embedding the copyright information of the software or the personal identity information of the user into the software, Extract when necessary to prove the copyright of the software or trace to the pirated source. This paper introduces software protection and some commonly used technologies, including software encryption, code confusion, software tamper-proof, software watermark and software birthmark. The software watermarking technology, including the definition and model of software watermark, is described in detail. Among them, the spread spectrum software watermark has better concealment and robustness. According to the principle of spread spectrum technology, it modifies the components of the feature vector extracted from the software to embed the watermark. In this way, the hidden watermark information on each component is little and can not be detected at will. In this paper, a spread spectrum software watermarking algorithm based on local instruction statistics is proposed on the basis of studying the existing spread spectrum software watermarking algorithm. The algorithm selects the carrier instruction in a certain way, and the method with the most times of occurrence of the carrier instruction, that is, the carrier method, adjusts the corresponding relation according to the hash value of the original program, so that different programs correspond to different carrier instructions. It is more difficult for an attacker to conspire to attack, and even if a certain vector instruction is inferred, it is impossible to find the carrier method corresponding to it again. When the watermark is embedded, only the number of times that the corresponding carrier instruction appears in the carrier method is modified, and the change of the corresponding carrier instruction in the carrier method is statistically analyzed when the watermark is detected. In this way, the attacker's modification to the program does not affect watermark detection as long as it is not in the carrier method. The algorithm appends cyclic redundancy check code to watermark information, which can correct watermark information and restore damaged information bit from certain program. Finally, the related technologies involved in the algorithm are analyzed, including the modification of Java class file, code base, equivalent substitution and insertion of redundant instruction, data check code, and how to select carrier instruction and carrier method, and how to select carrier instruction and carrier method, and how to select carrier instruction and carrier method. The algorithm is implemented on the SandMark platform for Java bytecode, and the performance test and anti-attack test are carried out. The experimental results show that the embedded watermark has little effect on the performance of the program while further improving the robustness of the watermark.
【学位授予单位】:武汉理工大学
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP309.7;TP311.53

【参考文献】

相关期刊论文 前10条

1 许金超;曾国荪;;一种基于线程关系的软件水印算法[J];电子学报;2012年05期

2 邹潇湘;李锦涛;;基于扩频的非对称数字水印[J];计算机科学;2002年09期

3 杨建龙;王建民;李德毅;;软件水印技术及其新进展[J];计算机工程;2007年17期

4 欧阳康;张汗灵;;基于扩展门限的软件水印研究与实现[J];计算机工程;2011年13期

5 王建民;余志伟;王朝坤;付军宁;;Java程序混淆技术综述[J];计算机学报;2011年09期

6 龙飞宇;刘嘉勇;袁熹;;一种变换PE文件引入表结构的软件水印[J];计算机应用;2010年01期

7 周正虎;陈丹;周光霞;赵鑫;;基于病毒多态性的Java软件水印技术[J];计算机与数字工程;2011年11期

8 刘建蓉;秦拯;彭程;;改进的动态图水印技术编码方案[J];计算机应用研究;2011年02期

9 张海超;陈丹;;一种基于栈分配的软件水印算法[J];计算机与数字工程;2012年08期

10 徐海银;冯丹;李丹;陈海兵;刘鸿海;;扩频软件水印研究[J];计算机应用研究;2007年10期

相关博士学位论文 前3条

1 冯博;软件安全开发关键技术的研究和实现[D];北京邮电大学;2010年

2 鲁晓成;嵌入式软件保护关键技术研究与应用[D];武汉理工大学;2011年

3 吴建军;恶意主机环境下的移动代码保护[D];浙江大学;2004年

相关硕士学位论文 前5条

1 徐光兴;基于代码混淆的零水印方案的设计与研究[D];武汉理工大学;2011年

2 艾解清;基于指令分布的软件水印设计与实现[D];湖南大学;2007年

3 罗毅;具有纠错特性的指令统计软件水印算法研究[D];湖南大学;2007年

4 周亮;软件水印算法评估研究[D];吉林大学;2010年

5 苏琳;基于代码加密的防篡改软件水印技术的研究与实现[D];西北大学;2010年



本文编号:2436484

资料下载
论文发表

本文链接:https://www.wllwen.com/falvlunwen/zhishichanquanfa/2436484.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户0b9f9***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com