知识

当前位置:首页 > 法律 > 知识

非对称加密算法在软件版权保护中的应用

来源:网络

摘 要:

利用公开的非对称加密算法(又称为公钥加密算法)RSA的技术设计自己的软件注册算法,提供高注册算法的破解难度,起到了保护软件版权的作用。

关键词:

非对称加密算法,公钥加密算法,RSA、注册算法

1 引言

现在很多软件使用注册码进行版权保护,但由于设计不佳,很容易被破解者做出注册机,下面介绍一种方法,利用公开的非对称加密算法(又称为公钥加密算法)RSA的技术设计自己的软件注册算法,使用这种方法,再不知道密钥的情况下很难做出注册机,提供高注册算法的破解难度,起到了保护软件版权的作用。

2 注册算法

2.1 RSA

RSA采用一对密钥,即公钥和私钥,从公钥难于推出私钥,反之亦然,这个难度是基于大数分解的难度。本文重点在于设计一种注册算法来保护软件版权,RSA加密算法的详细过程参考其它资料。[1]

2.2 基本思想

首先生成一对RSA随机公钥E和私钥D,这里采用RSATool(http://www.secretashell.com/TMG/RSATool2v15.zip)生成64-bitRSA的参数,例如:大素数P=D53F26F3,大素数Q=F05C1DEB,模数N=C837F021B7B64811,私钥D=9FBBA8F203983365,公钥E=10001。

有了这些参数可以开始写一个注册机了,密文C=(M^D)modN,其中^表示乘幂,mod表示求余,N为RSA的模数。

对应的注册验证程序,明文M'=(C^E)modD,接下来只要比较明文即用户名就可以了。

2.3 实现

已经有一些现成的软件组件库可以使用,可以使用大数运算库Freelip(http://www.und.nodak.edu/org/crypto/crypto/numbers/programs/freelip/freelip_1.1.tar.gz),也可以更简便地使用RSA加密函数库,这里给出了使用BitEncrypt软件加密套件(BEWorkShop)V0.11(http://www.bitencrypt.com)的程序代码范例,此组件库商业使用需要收费。

某注册机的C++代码片段:

RSAEncrypt(UserName,PrivateExponent,Modulus,SerialNumberResult);

某验证程序的C++代码片段:

RSADecrypt(SerialNumber,PublicExponent,Modulus,UserNameResult);

boolregistryPassed=!strcmp(UserNameResult,UserName);

我的一个商业收费软件KidSMS使用了这种注册算法,效果很理想,下面的图片展示的是软件注册界面和注册机的截图。

2.4 改进

方便用户输入可以,把密文进行编码,变成可显示字符,比如采用base64、uuencode编码等,同样验证注册码时需要对其进行解码。

显示全部
名人名言排行
若悠最新标签
有哪些 合同 交通事故 离婚 养老金 多少钱 方法 标准 财产 社保 公司 有什么 减肥 多久 工伤 条件 是怎样 吃什么 债务 宝宝 治疗 孩子 规定 广告语 工资 原因 协议 夫妻 功效 民法典 流程 做法 宣传语 一个月 食物 怎么处理 养生 孕妇 纠纷 取保候审 运动 基数 医保 离婚后 时间 劳动合同 责任 赔偿 员工 症状 抚养费 如何处理 法院 女性 个人 女人 怀孕 老人 有效 口号