软件保护技术
第6章 软件保护技术 第三节 加密算法 1、RSA算法 2、DES算法 3、ElGamal算法 4、DSA算法 5、MD5算法 6、BLOWFISH算法
1、RSA算法 它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。
一、RSA算法 : 首先, 找出三个数, p, q, r, 其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数...... p, q, r 这三个数便是 private key
接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1)..... 这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了..... 再来, 计算 n = pq....... m, n 这两个数便是 public key
编码过程是, 若资料为 a, 将其看成是一个大整数, 假设 a < n.... 如果 a >= n 的话, 就将 a 表成 s 进位 (s <= n, 通常取 s = 2^t), 则每一位数均小於 n, 然後分段编码...... 接下来, 计算 b == a^m mod n, (0 <= b < n), b 就是编码後的资料......
解码的过程是, 计算 c == b^r mod pq (0 <= c < pq), 於是乎, 解码完毕...... 等会会证明 c 和 a 其实是相等的 :)
如果第三者进行窃听时, 他会得到几个数: m, n(=pq), b...... 他如果要解码的话, 必须想办法得到 r...... 所以, 他必须先对 n 作质因数分解......... 要防止他分解, 最有效的方法是找两个非常的大质数 p, q, 使第三者作因数分解时发生困难.........
若 p, q 是相异质数, rm == 1 mod (p-1)(q-1), a 是任意一个正整数, b == a^m mod pq, c == b^r mod pq, 则 c == a mod pq
证明的过程, 会用到费马小定理, 叙述如下: m 是任一质数, n 是任一整数, 则 n^m == n mod m (换另一句话说, 如果 n 和 m 互质, 则 n^(m-1) == 1 mod m) 运用一些基本的群论的知识, 就可以很容易地证出费马小定理的........
因为 rm == 1 mod (p-1)(q-1), 所以 rm = k(p-1)(q-1) + 1, 其中 k 是整数 因为在 modulo 中是 preserve 乘法的 (x == y mod z and u == v mod z => xu == yv mod z), 所以, c == b^r == (a^m)^r == a^(rm) == a^(k(p-1)(q-1)+1) mod pq
1. 如果 a 不是 p 的倍数, 也不是 q 的倍数时, 则 a^(p-1) == 1 mod p (费马小定理) => a^(k(p-1)(q-1)) == 1 mod p a^(q-1) == 1 mod q (费马小定理) => a^(k(p-1)(q-1)) == 1 mod q 所以 p, q 均能整除 a^(k(p-1)(q-1)) - 1 => pq | a^(k(p-1)(q-1)) - 1 即 a^(k(p-1)(q-1)) == 1 mod pq => c == a^(k(p-1)(q-1)+1) == a mod pq
2. 如果 a 是 p 的倍数, 但不是 q 的倍数时, 则 a^(q-1) == 1 mod q (费马小定理) => a^(k(p-1)(q-1)) == 1 mod q => c == a^(k(p-1)(q-1)+1) == a mod q => q | c - a 因 p | a => c == a^(k(p-1)(q-1)+1) == 0 mod p => p | c - a 所以, pq | c - a => c == a mod pq
3. 如果 a 是 q 的倍数, 但不是 p 的倍数时, 证明同上
4. 如果 a 同时是 p 和 q 的倍数时, 则 pq | a => c == a^(k(p-1)(q-1)+1) == 0 mod pq => pq | c - a => c == a mod pq Q.E.D.
这个定理说明 a 经过编码为 b 再经过解码为 c 时, a == c mod n (n = pq).... 但我们在做编码解码时, 限制 0 <= a < n, 0 <= c < n, 所以这就是说 a 等於 c, 所以这个过程确实能做到编码解码的功能.....
二、RSA 的安全性 RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前, RSA 的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解多个十进制位的大素数。因此,模数n 必须选大一些,因具体适用情况而定。
三、RSA的速度 由于进行的都是大数计算,使得RSA最快的情况也比DES慢上倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。
四、RSA的选择密文攻击 RSA在选择密文攻击面前很脆弱。一般攻击者是将某一信息作一下伪装( Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:
( XM )^d = X^d *M^d mod n 前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way HashFunction 对文档作HASH处理,或同时使用不同的签名算法。在中提到了几种不同类型的攻击方法。
五、RSA的公共模数攻击 若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则:
C1 = P^e1 mod n C2 = P^e2 mod n 密码分析者知道n、e1、e2、C1和C2,就能得到P。 因为e1和e2互质,故用Euclidean算法能找到r和s,满足: r * e1 + s * e2 = 1 假设r为负数,需再用Euclidean算法计算C1^(-1),则 ( C1^(-1) )^(-r) * C2^s = P mod n 另外,还有其它几种利用公共模数攻击的方法。总之,如果知道给定模数的一对e和d,一是有利于攻击者分解模数,一是有利于攻击者计算出其它成对的e’和d’,而无需分解模数。解决办法只有一个,那就是不要共享模数n。
RSA的小指数攻击。 有一种提高 RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度有 所提高。但这样作是不安全的,对付办法就是e和d都取较大的值。
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。 RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET( Secure Electronic Transaction )协议中要求CA采用比特长的密钥,其他实体使用比特的密钥。
2、DES算法 一、DES算法 美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。加密算法要达到的目的(通常称为DES 密码算法要求)主要为以下四点:
☆提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改; ☆具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握; ☆DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础; ☆实现经济,运行有效,并且适用于多种完全不同的应用。 1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES棗Data Encryption Standard)。
目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。 DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 DES算法是这样工作的:如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。 通过定期在通信网络的源端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现
计算机软件保护论文
计算机软件保护论文计算机软件作为计算机应用的核心部分,相应的计算机软件系统保护和恢复技术已经引起了社会的广泛关注,保证软件运行的安全性和可靠性具有重要意义。
下面是店铺给大家推荐的计算机软件保护论文,希望大家喜欢!计算机软件保护论文篇一《探讨计算机软件系统的保护及恢复技术》摘要:随着社会发展和人民生活水平的提高,计算机已经渗透到生活的方方面面。
计算机软件作为计算机应用的核心部分,相应的计算机软件系统保护和恢复技术已经引起了社会的广泛关注,保证软件运行的安全性和可靠性具有重要意义。
关键词:计算机;软件系统;保护;恢复技术中图分类号:TP309.3 文献标识码:A 文章编号:1674-7712 (2013) 14-0000-01一、前言计算机软件系统的安全性已经成为了计算机发展的一个重要文艺,保证数据正确性和稳定性成了计算机发展不可忽视的一个问题。
当前计算机软件系统的保护和恢复已经形成了相对完整的体系,但是还是有很长的路要走[1]。
笔者根据多年的实际工作经验,首先叙述了计算机软件的分类,然后讲述了计算机软件保护和恢复技术的应用现状和特点分析,最后讲述了两种常用的计算机软件系统保护和恢复技术,具有一定实际参考意义和借鉴价值。
二、计算机软件的分类计算机软件系统的概念通常是和计算机硬件系统相互对比的,软件系统主要是指运行在硬件系统上面可多次重复使用的一种程序。
没有安装软件的计算机被称作裸机。
计算机软件系统又可以分为两种:系统软件和应用软件。
这两种软件之间特点分析如下表所示。
三、计算机软件系统保护和恢复技术的应用现状目前计算机服务在硬件设计中几乎没有软件保护这一概念,只是一些简单保护措施,比如设置CMOS权限来限制读写功能,此外,系统软件的安装和硬盘分区的划分限制是十分小的。
计算机软件系统保护包括两种保护方法:硬保护和软保护。
前者是在硬件层和操作系统之间进行保护,杜绝系统程序之间产生冲突或者数据遗失现象;后者是通过使用相关保护软件进行系统保护,提高整个系统的运行质量,杜绝数据遗失现象[2]。
软件技术方案3篇
软件技术方案软件技术方案(一)一、项目背景随着智能手机的普及和移动互联网的快速发展,人们的日常生活中离不开各种APP应用。
各种APP应用的出现帮助人们更加便捷地获取信息和服务,如打车软件、外卖软件等。
但是随着APP应用数量的不断增加,用户安全问题变得越来越重要,如用户个人信息被泄露、恶意软件攻击等。
因此,如何保障用户的安全成为当务之急。
二、项目目标本项目旨在开发一款安全检测APP应用,实现以下目标:1、检测用户手机中可能存在的安全风险;2、提供安全风险解决方案;3、提醒用户个人信息的保护。
三、开发技术本项目主要使用以下技术:1、Java语言:以Java语言为基础,采用Android平台进行开发。
2、网络技术:使用HTTP协议实现应用与服务器的交互。
3、数据库技术:使用SQLite数据库管理用户信息。
4、安全技术:使用RSA加密算法对用户个人信息进行加密保护。
四、开发流程1、需求分析:确定需求、分析用户需求、撰写需求规格说明书。
2、设计阶段:确定架构、设计UI界面、撰写设计文档。
3、编码阶段:实现代码编写,测试代码质量。
4、测试阶段:针对不同功能进行测试。
5、部署阶段:发布版本更新,更新服务器信息。
五、应用实现1、安全检测:通过扫描用户手机中的应用程序和APK文件,检测其中可能存在的安全风险,并进行提示和解决建议。
2、数据加密:使用RSA加密算法对用户的个人信息进行加密保护,防止信息被外泄。
3、隐私保护:提示用户选择开启隐私保护功能,尽可能保护用户个人信息。
4、远程锁定:对于手机丢失或被盗的情况,用户可以在网站上进行远程锁定,防止黑客窃取个人信息。
六、应用优化1、应用UI设计优化:用户友好、操作简单易懂。
2、算法优化:通过优化算法,提高应用运行速度。
七、结语本项目旨在增强用户的安全感,为用户提供更为安全、便捷和高效的服务,具有广泛的应用前景和市场价值,是一款开发价值较高的APP应用。
(3000字,已完成)。
浅议计算机软件开发与保护技术的分析
目前有一些可 以直接用于应用程序的 、相对成熟 的且具有安全功能
的产品,虽然这样具有安全功能的产 品应用于应用程序可以使整个系统 的统一性和整体 陛能提高 , 而且这样的措施也能够通过应 用程序的构建 ,
使原有安全产品的性能和功能适当的提升 。我们以数字签名功能为例 , 通常的安全产品不能够提供这项功能,而相关的应用却能实现这个功能
制程序时还需要注意系统更正手续的完整和发生错误 的跟踪和审计 。对 于程序 的编制 ,最重要 的一点就是需要相关程 序严格符合全部 的业务需
要。
所谓的安全程序 的开发设计过程 ,就是开发 者们通过将创建 的一些 具有能够提供安全服务 的模块 , 合理有效的安装在一起 的过程。第一步 , 建立用 以指导各个模块开发的整体框架 ;第二步 , 根据实际业务需求 , 按需设计各个模块及组件 。当遇到某些特殊情况时 , 例如各模块之 间的 需求矛盾或密码模式不充分等 ,可能会导致系统整体 的安全需求不能全
二 、计算机软件保护技术
( 一 )含 义 与 目的
结束 语
随着 电子信息化进程的推进以及计算机技术、网络科技的发展 , 各 种系统 、软件 以及应用程序已经越来越深入我们的工作和生活 ,甚至随 时时刻都影响着我们衣食住行 ,因此对 于计算机软件 的开发 ,对于我们 生活的改变和社会的进步都起着至关重要的作用。而与其相对应的信息
一
性 ,并且保障相关操作的完整统一 。通常系统都需要编人能够对输入
数据进行审核的检查程序和相关 的维护控制程序 ,来保障输入屏幕及输 入程序的准确。同时,数据处理 和传输的准确性也需要恰当的程序进行 控制 ,最重要的是避免 由于交 易导致的错误。在 出现数据输入输挥作用 了。在编
软件版权保护技术的研究与分析
复制和使用, 以及对软件产品进行的非法修改。软件保护的安
全主要包括 以下几个方面 :
发软件所用的思想、 处理过程、 操作方法或者数学概念等 。 ]
所 以采取法律手段 进行 软件 版权 保护 应该 注 意所要 保护 的对 象, 否则很难得 到充分 的保护。
・对象安全 对象指要保护的软件体本身。其安全问题 建立在授权对象的唯一性和授权标志的不可伪造性的基础上,
对象安全一般依赖 于现 代密 码学 中的有 牢 固理 论基 础 的加密 算 法。
22 软件侵权行为 .
常见 的软件侵权行 为包括 : J
・ 未经软件 著作权人许 可, 发表 、 记 登 修改 、 其软件 ; 翻译
・入 口 全 安
软件 体本身 可 以分 为保护 体和被 保护 的软
维普资讯
第2 4卷 第 1 期 20 0 7年 1月
计算机应用与软件
C mp trAp l ain n o w r o ue pi t sa d S f ae c o t
Vo. 4, o 1 12 N .
Jn 2 0 a.07
软件版权保护技术 的研究与分析
・故意删除或者改变软件权利管理电子信息 ; ・ 转让或者许 可他人行使著作权人 的软件著作权 。
在软件侵权行 为中 , 对于一些侵权主体 比较明确的 , 一般通
过法律手段予以解决 , 但是对于一些侵权主体比较隐蔽或分散
2 软件版权相关知识
21 软 件版权 的概 念 .
版权, 又称著作权或作者权 , 是指作者对其创作的作品享有 的人身权 和财产权 ” 。人身权包括 发表权 、 署名权 、 改权和 修
保护作品完成权等 ; 权包括作品的使用权和获得报酬权。 财产
软件加密方法及技术
Methods and Technology of Softwar e Encr ypting
XU Haifeng CAO Xiaojun
( Jiuquan Iron & Steel ( Group) Co. Ltd., Jiayuguan 735100)
Abstr act: The methods and technology of software and hardware encrypting, the adaptative fields and the comparison of various encrypting methods were introduced and compared. Key wor ds: software encrypting, hardware encrypting, technology
盘就采用了这种加密方式。它们的主要特点是在软 坏, 软件就不能继续使用。
磁盘的特殊位置做标记, 在软件运行中计算机要读
采用加密狗加密时, 软件以不加密的形式存放,
取这些特殊标记, 以验证软件的合法性。由于记录这 可以大批地快速复制, 而采用磁盘加密方法, 必须在
种特殊标记的位置不能被平常的拷贝命令或拷贝软 每张盘上逐个制作指纹, 而且指纹盘的质量难以保
方法多种多样, 从实现形式上经历了两个阶段: 不依 接使用, 软件在安装时或运行时会对计算机进行一
赖硬件的加密( 软加密) 方案和依赖特定硬件的加 番检测, 并根据检测结果生成一个计算机的特定指
密( 硬加密) 方案。
纹, 这个指纹可以是一个小文件, 也可以是一串谁
1 不依赖硬件的加密
也看不懂的数, 需要把这个指纹数据通过 Internet、
软件防篡改
软件防篡改软件保护技术论文题目软件防篡改技术解析学院计算机工程学院专业软件工程年级姓名学号指导教师2012年 4 月题目软件防篡改技术摘要:如今,随着计算机技术和因特网技术的飞速发展,电子产品,数字产品,特别是软件产品的版权侵犯、非法复制和恶意篡改等行为日趋泛滥,我国计算机软件产业起步较晚,但是在飞速的进步着,并且发达国家的软件专利保护的大趋势对我国现有的软件保护制度提出来严峻的挑战,不仅给软件产品的生产商、分销商和服务商带来了巨大的负面影响,还影响了政府的税收收入,甚至引发新的计算机安全问题等。
所以,软件产品的技术保护成为了一个重要的问题。
正文软件防篡改技术是保护软件安全的技术之一,其基本目标在于阻止软件程序被非法修改,检测篡改并做出适当的响应。
它有两种实现策略:(1)采取相应机制增大篡改程序的难度,提高篡改这攻击重新的成本。
(2)检测篡改事件并采取应对措施,比如,导致程序非正常运行。
计算机软件作为一种知识产权客体,具有不同于其它知识产权客体的特殊之处,主要表现在以下计算机软件是人类智力劳动的结晶,具有作品性和工具性两重属性;第二,计算机软几个方面:第一,件的思想内涵和表现形式融为一体、互相渗透,难以严格区分界定;第三,计算机软件的升级换代快,软件的更新周期越来越短;第四,软件开发成本高,但复制成本极低;第五,计算机软件具有广泛的国际流通性。
《计算机软件保护条例》于2001年12月20日以中华人民共和国国务院令第339号公布,根据2011年1月8日《国务院关于废止和修改部分行政法规的决定》第1次修订,根据2013年1月30日中华人民共和国国务院令第632号《国务院关于修改〈计算机软件保护条例〉的决定》第2次修订。
该《条例》分总则、软件著作权、软件著作权的许可使用和转让、法律责任、附则5章33条,自2002年1月1日起施行。
1991年6月4日国务院发布的《计算机软件保护条例》予以废止。
目前,软件的保护有专利和版权两种方式,从知识产权的视角看,两者的关系是平行的,一种是将软件转变成专利产品,另一种是将软件尤其是其中的源代码作为文字作品进行许可。
关于计算机软件版权保护网络安全中应用信息加密技术
关于计算机软件版权保护网络安全中的应用信息加密技术论文关键词:信息数据安全加密技术论文摘要:走进新世纪,科学技术发展日新月异,人们迎来一个知识爆炸的信息时代,信息数据的传输速度更快更便捷,信息数据传输量也随之增加,传输过程更易出现安全隐患。
因此,信息数据安全与加密对计算机网络安全愈加重要,也越来越多的得到人们的重视。
首先介绍我国计算机网络安全现状,然后,系统阐述在计算机网络安全中使用的信息数据的安全与加密技术,主要包括:存储加密技术和传输加密技术;密钥管理加密技术和确认加密技术;消息摘要和完整性鉴别技术我国关于软件保护的现今形势二十一世纪是科技的时代,是信息飞速发展的时代,计算机是这一时代的重要载体。
然而计算机软件是信息时代的重要产物,对于软件,这一人类智力成果和知识结晶的保护已经成为当今世界保护知识产权的一项重要内容。
随着计算机技术的飞速发展,计算机软件也随之迅猛崛起,计算机软件市场也发生了巨大的变化。
大量的软件用户的增加,随之带来的是大量的软件涌入市场,同时给人们带来了深远的影响。
与此同时,软件的版权保护也越来越受到人们的重视。
记得曾有同学戏言,我们可以放心使用微软的windows ,因为版税我们在清朝那会就已经付过了,所以我们是可以正当使用的。
针对中国这种盗版软件的猖獗情况,好多游戏公司的游戏根本就不在中国发售。
还有见过大学同学买了正版的psp游戏来玩,却被嘲笑不下盗版的。
你看,就算大学生对这种版权问题都意识很淡薄,而且还是搞软件的。
普通民众更是不会掏大把的钱去“犯傻”。
有便宜可以赚这种事情对普通民众来讲是没有免疫力的。
这不仅仅是因为民众对这一行的法律意识淡薄,而且还是一种道德的缺失。
虽说政府严禁盗版,而且规定政府部门的计算机必须使用正版的软件,当然这一定程度上来说,政府起了很好的带头作用,为普通民众以身作则,但是如今国内对于软件产权的保护力度远远不够。
我国颁布的《计算机软件版权保护条例》1,《计算机软件版权保护条例》1991年,我国颁布了《计算机软件版权保护条例》,(下称《条例》)《条例》对计算机软件做了详细的界定,并与世界知识产权保护组织的定义原则上一致。
软件加密技术及实现
软件加密技术及实现加入收藏网站地图网站搜索简繁默首页图片热点专题动网新闻.Net 技术文章 Flash欣赏新闻信息网络文摘星座命理英语学习论坛首页→技术文章→加密解密算法阅读新闻软件加密技术及实现[日期:2004-07-30]来源:csdn 作者:whinah[字体:大中小]软件加密技术及实现雷鹏(桂林电子工业学院计算机系)摘要当今盗版软件的泛滥成灾几乎已经成为了我们中国民族软件的灾难,为了防止软件的非法复制、盗版,保护软件开发商的利益,就必须对软件进行加密保护。
现在市面上有许多反盗版软件,但这类软件多是单机处理,并且只使用简单的加密手段,很容易被解密者破解。
本文描述了一个通过Internet,集加密和电子注册于一身的完善的软件保护方案。
该方案基于多种密码学意义上可靠的算法,如对称加密算法,散列算法,数字签名,密钥交换等等。
通过对Windows下PE可执行文件的结构及载入机制进行深刻的剖析, 巧妙的使用这些密码学算法及多种反破解方案对PE文件进行加密保护。
在该方案的实现中,使用CryptoAPI中的数字签名算法RSA,加密算法RC2和RC4,散列算法SHA,同时自己编写了使用了MD5算法用于快速计算大量数据的摘要;网络接口使用WinSocket;编程语言选用汇编语言和C++混合编程方式;反破解方案有检测文件完整性、检测代码完整性、反跟踪、反-反汇编、反Dump、代码变形等等。
由于使用了可靠的密码学算法,使软件加密的强度大大提高;由于使用了Internet 在线注册方式,用户使用也非常方便。
关键词加密;数字签名;散列;反跟踪;电子注册Software Protection technique and its realizationLEI Peng( GuiLin Institute of Electronic Technology . The Department of Computing )Abstract The flooding of pirate software has been a calamity of ournational software industry . In order to prevent software from pirate ,and protect the profit of the software developer , they must encrypt their software to get a protection . There are several software protection toolsin the market currently , but these tools were standalone nine tenths ,and they only used simple encryption algorithms , so they could be cracked easily by the crackers .This thesis describes a perfect software encryption and protection scheme which integrate the encryption and electronic register . This scheme isbased on multiple reliable cryptographic algorithms such as symmetricencryption algorithm , digital signature , hashing and key exchange . The PE file format (Portable Executable File Format) and its loading mechanism under Windows are dissected thoroughly in this thesis . Then thesecryptographic algorithms and several anti-crack method are used gracefully to encrypt and protect the PE file .Within the realization of this scheme , the RSA digital signaturealgorithm , RC2 and RC4 encryption algorithm , SHA hasing algorithm etc in MicroSoft CryptoAPI are used . In order to increase the performace ofcaculate the digest of large number of data, MD5 hashing algorithm wasrewritten . WinSocket API is used as the network interface . The blend of C++ and assembly are used for easily contoling the bottom layer of thesystem and simplify the programming . The anti-crack method consits theintegralization of the file checking , the integralization of the codechecking , and anti-debug , anti-disassembly , anti-dump and codemetamorphose etc .The reliable cyrpto algorithms guarantee the crypto strength . As a result of online register , the retail users and the software developers getconvenience .Key words Encrypt ; Digital Signature ; Hashing ; Anti-Debug ;Electronic Register目录1 概述 12 密码学简介2.1 概念 32.2 对称密码算法 62.3 公开密码算法 62.4 单向散列函数 72.5 数字签名 83 Windows 环境下 PE 文件简介3.1 WIN32 与 PE 基本概念 103.2 PE首部 123.3 PE文件的导入表 144 当前流行的一些软件保护技术4.1 序列号保护 214.2 时间限制 224.3 Key File 保护 234.4 CD-check 234.5 反跟踪技术(Anti-Debug) 234.6 反-反汇编技术(Anti- Disassmbly) 244.7 软件狗 254.8 Vbox 保护技术 254.9 SalesAgent 保护技术 264.10 SecuROM 保护技术 264.11 软盘加密 264.12 将软件与机器硬件信息结合 264.13 加壳 275 该软件的设计思想5.1 传统保护的不足 285.2 网络的流行 295.3 我的方案 295.4 该方案的可行性分析 296 该软件的整体构架、开发工具及方法6.1 需求分析 326.2 整体框架 356.3 各取所长(汇编与 C/C++ 各取所长) 356.4 C/C++ 与汇编语言混合编程时的互调协议 366.5 该软件中各模块对语言特性的限制及解决方法 406.6 C/C++ 和汇编语言的预编译 457 该软件的实现及技术细节7.1 CryptoAPI 简介 477.2 几个公共函数和宏 497.3 模块共用的结构体定义 547.4 Shield 模块 567.4.1 壳程序中API和库函数的处理 597.4.2 壳程序主体 627.4.3 加密壳程序 637.4.4 运行中修改自身代码 647.4.5 代码散列校验 647.4.6 跳转到客户程序入口 657.4.7 载入并销毁 Client 程序的 ImportTable 66 7.4.8 自毁壳程序代码 697.4.9 编译方法 707.5 Merge 模块 717.6 Register 模块 767.7 Server 模块 777.8 软件授权协议的实现 787.9 Client的代码(数据)的加密/解密流程图示 828 使用说明及演示8.1 使用说明 838.2 演示及效果 839 限制、不足与展望9.1 使用该软件的限制 869.2 该软件的不足 869.3 对该软件的展望 8710 结束语10.1 总结 9110.2 致谢 91参考文献 921 概述我引用《应用密码学》作者Bruce Schneier的话:世界上有两种密码:一种是防止你的小妹妹看你的文件;另一种是防止当局者阅读你的文件资料。
软件保护锁的方法和设备的生产技术
一种软件程序的保护锁装置和方法,用于电脑系统,装置在软件磁盘中,由一输入输出端口,一切换装置,一检测比较装置和一接口装置组成,并连接一外接充(放)电时间控制组件。
中央处理单元在程序控制下,先使切换装置导通,使外接充(放)电时间控制组件中的电容放(充)电;然后切换装置截止,电容充(放)电;检测比较装置检测比较其电位状态;中央处理单元根据其充(放)电时间特性,判定其是否为原版的锁,若是,软件正常执行,否则,中止软件执行。
权利要求书1、一种软件保护锁装置,用于电脑系统,装设于软件的磁盘中,该软件保护锁装置包括有一个输入输出端口,一个切换装置,一个检测比较装置,以及一个与电脑系统的中央处理单元相连的接口装置,该软件保护锁装置还可以连接一个外接充电时间控制组件;所述切换装置被连接于所述输入输出端口上,在所述中央处理单元的指令下将所述输入输出端口切换到接地电位,以便使所述外接充电时间控制组件放电,并于切换离开接地电位时对所述外接充电时间控制组件进行充电;所述检测比较装置的输入端被连接至所述输入输出端口上,以便检测比较连接于所述输入输出端口上的所述外接充电时间控制组件的电位状态;且所述接口装置在中央处理单元的控制之下,其一端口控制所述切换装置的切换动作而进行所述外接充电时间控制组件的充电动作,而其另一端口则连接至所述检测比较装置的输出端,以将所述检测比较装置所检测比较得到的所述外接充电时间控制组件的充电时间与电位信息传达给中央处理单元,中央处理单元依据该比较结果而决定中央处理单元是否继续执行软件程序。
2、根据权利要求1所述的软件保护锁装置,其特征在于所述检测比较装置为一电压比较器。
3、根据权利要求1所述的软件保护锁装置,其特征在于所述切换开关为一NMOS开关晶体管。
4、根据权利要求1所述的软件保护锁装置,其特征在于所述外接充电时间控制组件为电阻与电容所构成的无源充电电路。
5、根据权利要求1所述的软件保护锁装置,其特征在于所述外接充电时间控制组件可为有源充电电路。
软件工程保护中的软件防篡改技术
软件工程保护中的软件防篡改技术肖锦然(大连大学 信息工程学院 辽宁 大连 116622)摘 要: 计算机已经成为当代人生活、工作中的必须品,尤其是对企业而言计算机已经成为企业活动之中不可或缺的重要组成部分。
而就计算机使用而言,对软件的保护工作则是防止企业信息泄露、保证企业正常运转的大前提。
就当下软件篡改方式而言主要这样三种:盗版软件、工程逆向和篡改代码,与之相对的保护方式主要有这样三种:水印方法、模糊代码和防篡改法。
以防止软件篡改为主体,对软件的保护工作做阐述。
关键词: 软件工程;防篡改;方式技术中图分类号:TP393 文献标识码:A 文章编号:1671-7597(2012)1120001-01伴着计算机的高度普及,软件已经拥有其独立的知识产处理等等,利用软件的储存与运算基础——硬盘,使之具有权,软件产生和运算的信息量之大是难以想象的,它是维持整“保护意识”,进而从根本上防止篡改。
个企业正常运转的基础保障。
因此越来越多的篡改、盗用、窃 2 新时代的防篡改技术取软件的事情发生,并且其技术也是日益强大。
为了保护企在信息资源已经变得越来越重要的今天,对信息窃取的技业、个人自身电脑的安全性和独立性,方篡改软件的技术也在术支持力度变大,使得信息窃取技术有了质的变化。
想要跟得不断增强、包括给软件大上水印、给代码设置一个模糊环境、上篡改技术的变化速度,满足新时代对软件保护工作的需求,使软件显示多样性、利用时间模式进行限制、安防软件保安、只利用老方法、老路子是不行的,我们要利用老传统的优点,使用智能卡等措施。
结合新时代篡改技术的特定,多角度、多防范性的进行思考,1 软件保护工作中的防篡改法才能制定出真正有效的软件防篡改技术。
以下就来介绍其中的防篡改法可以从硬件和软件两方面进行。
几种。
1.1 用于软件上的防篡改法软件防篡改法主要从验核工作、安放软件护卫、严查断言、加密密码等方面入手。
1.1.1 验核工作这是一种常用的静态保护方式,其主要途径是随时对计算机中软件、文件、信息等项进行检查核对,并根据其存储位置中的相关文件、备份文件进行比对,以确保软件的安全性和软件的完整度。
