天津信凯律师事务所

主页 > 法律问答 > 知识产权 > > 正文

知识产权

律师推荐

  • 孙俊平

    信凯合伙人

    执业证号:11101201411349735

    擅长领域:各类民商事诉讼、非诉讼案件;适合代理特别重大、复杂的案件、家庭财产中涉及上市公司、有限、股份公司股权分割、虚假债务、资产担保、重大资产转移处理等案件

    了解详情 在线咨询
  • 翟亚鲁

    信凯合伙人

    执业证号:11101201411349735

    擅长领域:擅长处理婚姻家庭纠纷、房屋买卖合同纠纷、侵权赔偿纠纷、析产继承纠纷、劳动争议等纠纷

    了解详情 在线咨询

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

日期:2021-04-16 浏览次数:96

>>

摘 要:

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

关键词:

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

1 引言

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

2 注册算法

2.1 RSA

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

2.2 基本思想

首先生成一对RSA随机公钥E和私钥D,这里采用RSATool()生成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(),也可以更简便地使用RSA加密函数库,这里给出了使用BitEncrypt软件加密套件(BEWorkShop)V0.11()的程序代码范例,此组件库商业使用需要收费。

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

RSAEncrypt(UserName,PrivateExponent,Modulus,SerialNumberResult);

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

RSADecrypt(SerialNumber,PublicExponent,Modulus,UserNameResult);

boolregistryPassed=!strcmp(UserNameResult,UserName);

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

2.4 改进

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

声明:该作品系作者结合法律法规、政府官网及互联网相关知识整合,遵守本网站规章制度发布。如果涉及商誉、版权等相关问题,请通过投诉通道提交相关权属信息,我们将第一时间核准并按照法律的相关规定及时进行删除处理。【投诉通道】

北京信凯律师事务所法律门户第一站,免费为当事人和律师搭建在线沟通平台。是咱老百姓找律师、法律咨询、打官司的最佳选择。您可以通过北京信凯律师事务所免费找本地律师委托案件、咨询法律难题、查阅法律法规及日常法律常识等。北京信凯律师事务所汇集全国知名律师,专职律师在线援助,有法律问题就上北京信凯律师事务所咨询下。