1、 本 科 毕 业 论 文 软件安全设计 保护技术与加密算法 Software Security Design Protect and Encrypt Algorithm 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 教授 年 月 摘 要 随着信息技术的高速发展,越来越多的软件投入商业使用 ,近年软件业在全世界的产值达数千亿美元。 但是与此同时 , 08 年软件业受盗版影响损失 高达 530亿 美元,严重破坏了软件业,给不法用户带来了不公平优势,同时也埋下了许多安全隐患。 造成这一现象的原因,正是软件开发者对软件安全的重视不够,从来就没有把软件安全提
2、到和需求分析、软件设计一样的高度,使得盗版商有机可乘。 虽然部分开发者意识到了 盗版软件造成的经济损失,开始尝试在软件中加入序列号,但是由于缺乏基本的安全技术常识,所设 计的序列号加密算法往往强度很低,达不到期望的保护效果。 事实上,开发者可以利用密码学中一些经典的加密算法,这些算法强度较高,并且在因特网上存在大量源代码 和 库文件实现,甚至自行实现难度也不大。 在选择恰当算法的基础上,合理应用,可以大大增加盗版商破解的难度,降低损失。 本文从不同角度介绍了常见试用版软件的保护技术,详细描述了四种经典密码学算法的算法步骤与编程实现,并综合运用密码学与保护手段提出了一种基于网络验证的序列号保护机
3、制 ,对软件开发者具有较高的参考价值。 关键词 : 软件安全 ; 保护技术 ; 加密算法Abstract With the rapid development of information technology, more and more software are put into commercial use. The output value of software industry has reached as much as hundreds of billions of dollars. But in 2008, the losses of software industry, w
4、hich was caused by piracy, exceeding suffered 53 billion dollars. At the same time, piracy seriously damaged the software industry, brought the illegal users an unfair advantage and planted a number of security risks. The reasons for this phenomenon is the software developers has not paid as much at
5、tention to software security as demand analysis and software design, which makes the pirates take advantage of. Some developers have awarded of the losses caused by pirated software, begun to add the software serial number. But due to the lack of basic knowledge of security technology, the strength
6、of serial number generation algorithm is often very low, which is much less than the desired protective effect . In fact, developers can make use of some classical cryptography encryption algorithms of higher intensity. There are a large number of source code and library file on the Internet to achi
7、eve. By appropriate selection and using, the algorithm can greatly increase the difficulty of the pirates, which result in reducing losses. This dissertation introduces popular protection technology of trial versions software in two ways, describes produce of four commonly used cryptographic algorit
8、hms and their implementation. Also, this dissertation gives a useful solution of network verification on software serial number, which makes use of several protection technology and encryption algorithm. Key words: Software Security; Software Protection Technology; Encrypt Algorithm.目 录 第一章 绪论 . 1 1
9、.1 项目背景 . 1 1.2 软件加密的现状 . 2 1.2.1 确定因素 . 3 1.2.2 应用模式 . 4 1.2.3 误区 . 4 1.2.4 代价 . 6 1.3 项目主要工作内容 . 6 1.4 论文组织结构 . 7 第二章 常见软件保护技术 . 9 2.1 警告窗口 . 9 2.1.1 警告窗口简介 . 9 2.1.2 警告窗口的实现 . 9 2.1.3 动态分析 .10 2.2 CD-CHECK. 11 2.2.1 CD-Check 简介 .11 2.2.2 CD-Check 实现 .12 2.2.3 动态分析 .13 2.3 菜单限制 . 14 2.3.1 菜单限制简介 .
10、14 2.3.2 菜单限制实例 .15 2.3.3 动态分析 .16 2.4 时间限制 . 18 2.4.1 时间限制简介 .18 2.4.2 时间限制实例 .18 2.4.3 动态分析 .19 2.5 本章小结 . 20 第三章 加密算法 .21 3.1 RSA . 21 3.1.1 RSA 简介 .21 3.1.2 算法描述 .21 3.1.3 算法安全性 .21 3.1.4 编程实现 .22 3.2 DES . 23 3.2.1 DES 简介 .23 3.2.2 DES 算法描述 .24 3.3 MD5 . 27 3.3.1 MD5 算法简介 .27 3.3.2 MD5 算法描述 .28
11、 3.4 CRC32. 32 3.4.1 CRC32 算法简介 .32 3.4.2 CRC32 算法描述 .32 3.5 本章小结 . 34 第四章 网络验证 .35 4.1 网络验证简介 . 35 4.2 网络验证相关技术 . 35 4.2.1 基于 Socket 通信的 Client/Server 模式 .35 4.2.2 DES 加密 .37 4.2.3 基于硬盘物理编号和 RSA 的序列号计算 .37 4.2.4 运行流程 .38 4.3 本章小结 . 41 第五章 总结与展望 .43 5.1 工作总结 . 43 5.2 不足与 展望 . 43 参考文献 .45 致 谢 .47 Con
12、tents Chapter1 Introduction . 1 1.1 Project Background . 1 1.2 Status . 2 1.2.1 Decisive Factor . 3 1.2.2 Models. 4 1.2.3 Mistaken Ideas . 4 1.2.4 Cost . 6 1.3 Major Work. 6 1.4 Outline of Dissertation . 7 Chapter2 Popular Software Protection Technology. 9 2.1 NAG . 9 2.1.1 Introduction . 9 2.1.2 Im
13、plement. 9 2.1.3 Dynamic Analysis .10 2.2 CD-CHECK . 11 2.2.1 Introduction .11 2.2.2 Implement.12 2.2.3 Dynamic Analysis .13 2.3 Menu Limit . 14 2.3.1 Introduction .14 2.3.2 Implement.15 2.3.3 Dynamic Analysis .16 2.4 Time Limit. 18 2.4.1 Introduction .18 2.4.2 Implement.18 2.4.3 Dynamic Analysis .19 2.5 Sunmmary.