首页> 中国专利> 一种基于加密闪盘和大数据运算技术的授权使用方法

一种基于加密闪盘和大数据运算技术的授权使用方法

摘要

本发明公开了一种基于加密闪盘和大数据运算技术的授权使用方法,所述方法包括:制作加密闪盘,预留私密区并将应用软件复制到加密闪盘;用户通过加密闪盘完成应用软件到目标机的安装和运行;应用软件自动提取目标机硬件特征码并完成授权许可全局唯一标识码的计算与生成;应用软件将计算得到的授权许可全局唯一标识码回写到加密闪盘私密区并对应用软件进行授权许可认定;用户可断开加密闪盘与目标机的电气连接,应用软件能够正常使用等。本发明所公开的授权使用方法,利用加密闪盘私密区回写授权许可全局唯一标识码和基于大数运算的硬件特征码加密、验证方法,解决了现有技术中纯软件授权方式不可靠、软硬件结合授权或纯硬件授权使用方式繁琐等问题,能够一对多对发布软件进行可靠、有效授权,在无需额外繁琐操作的前提下尽可能提高了软件版权的保护力度。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-11-11

    未缴年费专利权终止 IPC(主分类):G06F21/12 专利号:ZL2014107288626 申请日:20141204 授权公告日:20171027

    专利权的终止

  • 2017-10-27

    授权

    授权

  • 2015-05-20

    实质审查的生效 IPC(主分类):G06F21/12 申请日:20141204

    实质审查的生效

  • 2015-04-22

    公开

    公开

说明书

技术领域

本发明涉及软件安全认证研究领域,尤其涉及一种基于带有私密存储区加密闪盘的软件授权许可方法。

背景技术

软件版权保护是知识产权保护体系中的重要组成部分。目前,国际上对商用行业软件版权进行保护的通用惯例是依据微软公司在2004年的做法,提供最终用户许可协议EULA(End-User-License Agreement)并要求用户遵守。但是,EULA只从文本上约定了最终用户的权利和义务,并不能从技术上提供有效的版权保护机制和控制手段,无法控制用户的任意安装与使用。

基于软件版本保护和特定软件产品归属特定用户使用的需求考虑,需要在软件产品发布时通过软硬件技术保护措施预留有关身份认证和鉴权的功能接口,在使用时动态提取待授权目标机的硬件特征码HFC(Hardware Feature Code)并将其作为软件合法用户身份的全局唯一标识码,一旦全局唯一标识码被动态创建,其他任何非授权目标机将由于硬件特征码的不匹配而无法通过许可验证。现有的同类认证方法主要存在以下几方面弊端:用户需要提取并回传硬件特征码,待生成授权许可全局唯一标识码后才能使用,过程繁琐,使用不便;一个授权许可设备只能与单台目标机绑定,且在使用过程中必须全程保持电气连接,在多台目标机需要使用时授权许可设备数量过多,不仅匹配管理难度大,当一台目标机同时使用多种授权软件时,各授权许可设备之间易冲突并导致应用软件工作异常;用纯软件方式进行授权认证则极易被破解。

发明内容

本发明所要解决的技术问题就是提供一种基于带有私密存储区加密闪盘的软件授权许可方法。

本发明采用如下技术方案:

一种基于加密闪盘和大数据运算技术的授权使用方法,其改进之处在于,所述方法包括:

步骤A:制作加密闪盘,预留私密区并将应用软件复制到加密闪盘;

步骤B:用户通过加密闪盘完成应用软件到目标机的安装和运行;

步骤C:应用软件自动提取目标机硬件特征码并完成授权许可全局唯一标识码的计算与生成;

步骤D:应用软件将计算得到的授权许可全局唯一标识码回写到加密闪盘私密区并对应用软件进行授权许可认定;

步骤E:用户可断开加密闪盘与目标机的电气连接,应用软件能够正常使用,重复步骤B—E,完成用户全部待授权目标机的软件安装与授权,已建立全部绑定关联后的加密闪盘将不能为超出许可范围的其他计算机进行授权,已授权计算机在软件卸载、重新安装后无需重新认证即可正常运行,只有在重装系统后需要按步骤B—E对其重新进行授权。

进一步的,所述步骤A具体包括:

步骤A1:将加密闪盘插入开发机;

步骤A2:对加密闪盘在“普通盘”模式下进行“低级扫描”;

步骤A3:设置“分区0写保护”和“拷贝到0分区”的分区设置参数,并选择待发布应用软件安装包所在文件夹的存放路径;

步骤A4:在“高级信息设置”对话框中设置私密区空间大小;

步骤A5:开始加密闪盘制作,直至制作完毕。

进一步的,所述步骤B具体包括:

步骤B1:将加密闪盘插到待授权目标机的USB接口;

步骤B2:在目标机进入加密闪盘,并打开存放待授权应用软件安装包的文件夹;

步骤B3:运行待授权应用软件安装包,根据提示完成软件到目标机的安装。

进一步的,所述步骤C具体包括:

步骤C1:在目标机运行已安装的待授权应用软件;

步骤C2:待授权应用软件后台自动提取目标机硬盘序列号、CPU信息、BIOS信息等硬件特征,综合形成硬件特征码;

步骤C3:计算生成授权许可全局唯一标识码。

进一步的,所述步骤C3具体包括:

步骤C31:取两个相近的大素数p、q,计算n=p×q,z=(p-r)×(q-r);

步骤C32:采用大数运算库随机生成任取一个与z互素的整数e并计算满足e×d=r mod z 的整数d,(n,e)和(n,d)分别为“公钥”和“私钥”存在,由(n,e)加密的数据只能用(n,d)解密,此处大数运算库的应用可保证模数n不被因式分解;

步骤C33:将硬件特征码作为明文m,分成字符块s加密,每个块s小于n;

步骤C34:通过c=m^e mod n计算出密文c,其中,“^”表示乘幂,“mod”表示求余,“n”为模数,一般取值在512位以上,密文c即为授权许可全局唯一标识码。

   进一步的,所述步骤D具体包括:

步骤D1:通过应用程序中的授权认证模块完成授权许可全局唯一标识码向加密闪盘私密区内指定文件的内容写入;

步骤D2:通过应用程序中的授权认证模块完成对应用软件的授权许可认定。

进一步的,所述步骤E具体包括:

步骤E1:从已授权目标机上取下加密闪盘;

步骤E2:重新启动已授权通过的应用程序,能够正常运行;

步骤E3:已绑定了全部许可目标机的加密闪盘无法对许可范围外的计算机实施软件许可授权,安装的应用软件不能正常启动和运行。

    进一步的,所述步骤E2具体包括:

步骤E21:重新启动已授权通过的应用程序,通过其内置授权认证模块从计算机提取目标机硬盘序列号、CPU信息、BIOS信息等硬件特征,综合形成硬件特征码;

步骤E22:内置授权认证模块从本机注册表下读取“SDCode”键值并将其作为密文c;

步骤E23:根据Euler定理:m=c^d mod n=(m^e mod n)^d mod n=m,可知通过m=c^d mod n可从密文c解密得到明文m,即预期硬件特征码;

步骤E24:将预期硬件特征码与在步骤E21中获取得到的实际硬件特征码比对,符合则验证通过,程序正常运行,否则程序退出执行。

进一步的,所述步骤E3具体包括:

步骤E31:从加密闪盘完成应用软件到许可范围外计算机的安装;

步骤E32:在许可范围外计算机上启动已安装的应用程序,通过其内置授权认证模块从计算机提取目标机硬盘序列号、CPU信息、BIOS信息等硬件特征,综合形成硬件特征码;

步骤E33:内置授权认证模块从加密闪盘私密区读取存储的全部授权许可全局唯一标识码,并逐一将其作为密文c,键值不存在时取默认键值“0”,参与后续处理;

步骤E34:通过m=c^d mod n从密文c解密得到明文m,即预期硬件特征码;

步骤E35:将预期硬件特征码与在步骤E32中获取得到的实际硬件特征码比对,由于是许可范围外计算机,其密文不可能含有与明文匹配的信息,因此验证不会通过,程序退出执行。

本发明的有益效果在于:

本发明所公开的授权使用方法,利用加密闪盘私密区回写授权许可全局唯一标识码和基于大数运算的硬件特征码加密、验证方法,解决了现有技术中纯软件授权方式不可靠、软硬件结合授权或纯硬件授权使用方式繁琐等问题,能够一对多对发布软件进行可靠、有效授权,在无需额外繁琐操作的前提下尽可能提高了软件版权的保护力度。

本发明所公开的授权使用方法,克服了现有技术中纯软件方式易破解、授权许可全局唯一标识码产生、获取以及鉴权许可等各个环节操作使用不便捷的缺点,提供一种基于带有私密存储区加密闪盘的软件授权许可方法。该方法能够在用户使用时自动提取硬件特征码并在用户端动态计算生成授权许可全局唯一标识码,该码在产生后能自动回写至加密闪盘特定的私密存储区和目标机系统注册表建立目标机与认证设备的绑定关系,并同时为目标机应用软件完成授权认定。后续使用时,一台认证设备能够为多台,具体数量在发布时设定,目标机授权并与其建立一对多的绑定关系。一旦授权成功,在后续使用时目标机将无需与认证设备保持电气连接,全方位方便用户使用。

附图说明

图1为本发明实施例1所公开的授权使用方法的流程示意图;

图2是本发明实施例1所公开的授权使用方法的详细处理流程图。

具体实施方式

为了解决现有技术中软件授权不可靠、操作繁琐等问题,本发明提供了一种基于加密闪盘私密区和大数运算的软件授权许可方法,本发明实施例的技术方案通过对目标机硬件特征信息的提取、能可靠授权的全局唯一标识码的计算以及授权标识信息的存储设计,最终能确保授权简便、鉴权可靠。以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

根据本发明的实施例,提供了一种基于加密闪盘和大数据运算的软件授权许可方法,图1是本发明实施例的流程图,如图1所示,根据本发明实施例的软件授权许可方法包括如下处理:

步骤101:制作加密闪盘,预留私密区并将应用软件复制到加密闪盘。

步骤101具体包括如下处理:

步骤1:将加密闪盘插入开发机;

步骤2:用Umptool制作工具对加密闪盘在“普通盘”模式下进行“低级扫描”;

步骤3:设置“分区0写保护”和“拷贝到0分区”的分区设置参数,并选择待发布应用软件安装包所在文件夹的存放路径;

步骤4:在“高级信息设置”对话框中设置私密区空间大小;

步骤5:点击“全部开始”按钮开始加密闪盘制作,直至制作完毕

步骤102:用户通过加密闪盘完成应用软件到目标机的安装和运行。

步骤102具体包括如下处理:

步骤1:将加密闪盘插到待授权目标机的USB接口;

步骤2:在目标机通过资源管理器软件进入加密闪盘,并打开存放待授权应用软件安装包的文件夹;

步骤3:运行待授权应用软件安装包,根据提示完成软件到目标机的安装。

步骤103:应用软件自动提取目标机硬件特征码并完成授权许可全局唯一标识码的计算与生成。

步骤103具体包括如下处理:

步骤1:在目标机运行已安装的待授权应用软件;

步骤2:待授权应用软件后台自动提取目标机硬盘序列号、CPU信息、BIOS信息等硬件特征,综合形成硬件特征码;

步骤3:计算生成授权许可全局唯一标识码。

步骤104:应用软件将计算得到的授权许可全局唯一标识码回写到加密闪盘私密区并对应用软件进行授权许可认定。

步骤104具体包括如下处理:

步骤1:通过应用程序中的授权认证模块完成授权许可全局唯一标识码向加密闪盘私密区内指定文件的内容写入;

步骤2:通过应用程序中的授权认证模块完成对应用软件的授权许可认定。

步骤105:用户可断开加密闪盘与目标机的电气连接,应用软件能够正常使用。

步骤105具体包括如下处理:

步骤1:从已授权目标机上取下加密闪盘;

步骤2:重新启动已授权通过的应用程序,能够正常运行;

步骤3:已绑定了全部许可目标机的加密闪盘无法对许可范围外的计算机实施软件许可授权,安装的应用软件不能正常启动和运行。

以下结合附图,对本发明实施例的上述技术方案进行详细说明。

图2是本发明实施例详细处理流程图,如图2所示,包括以下步骤:

步骤S201,制作加密闪盘,预留1MB私密区并将应用软件CryptSetup.exe复制到加密闪盘,具体实现过程为:

(11):将加密闪盘插入开发机;

(12):运行Umptool.exe制作工具,显示厂商信息为“Generic”、主控型号为“2093P”、类型为“自动播放盘”,点击“量产设置”,开始量产设置工作,对加密闪盘在“普通盘”模式下进行“低级扫描”;

(13):在“量产设置-2093P”对话框中勾选“分区0写保护”和“拷贝到0分区”的分区设置参数,并选择CryptSetup.exe安装包所在文件夹的存放路径“D:\CryptSoft\”;

(14):点击“高级信息设置”按钮,并在弹出的“高级信息设置”对话框中设置私密区空间大小为1MB;

(15):点击“全部开始”按钮开始加密闪盘制作,直至制作完毕。

步骤S202,用户在加密闪盘运行CryptSetup.exe根据提示将CryptSoft.exe安装到目标机并运行,具体实现过程为:

(21):将加密闪盘插到待授权目标机的USB接口;

(22):在目标机通过资源管理器软件进入加密闪盘,打开“I:\CryptSoft\”文件夹;

(23):运行CryptSetup.exe,根据提示完成软件到目标机的安装。

步骤S203,CryptSoft.exe自动提取目标机硬件特征码并完成授权许可全局唯一标识码SDCode的计算与生成,具体实现过程为:

(31):在目标机运行CyrptSoft.exe;

(32):CryptSoft.exe在后台通过GetVolumeInformation("C:\\", NULL, NULL, &dwIDESerial, NULL, NULL, NULL, NULL)自动提取目标机硬件特征信息到DWORD类型变量 dwIDESerial(实例取值为:83588328);通过ltoa(dwIDESerial + SOFTID, Seed, 10)与#define SOFTID 0x6EA40DFF1180预定义的软件特征序列号SOFTID融合并形成硬件特征码“318408296”并存储于Seed变量内。

    (33):通过MIRACL大数运算库,对Seed变量进行加密计算。首先通过miracl *mip = mirsys(100, 0)申请缓冲区并进行初始化,通过  mip->IOBASE = 16指定为十六进制模式,由big c = mirvar(0)、big m = mirvar(0)、big n = mirvar(0) 和big e = mirvar(0)来分别定义密文、明文、模数和公钥,通过memcpy(N, Seed, Seed.GetLength())把硬件特征码引入到N,并通过bytes_to_big(Len, N, m)将其转换为十六进制,通过 cinstr(e, "56157D29A89D77BF2F669A8F0B123CC9")完成公钥e的初始化,用cinstr(n, "963251DC5A9C90D9F203A03C363BA411")来初始化模数,在powmod(m, e, n, c)完成c = m  ^e mod n的计算后,通过cotstr(m, SDCode)得到以十六进制表示的密文,即授权许可全局唯一标识码。当Seed 取“318408296”输入时,密文SDCode的取值为“179CD85907FF413D516B3A6223BF9684”。

步骤S204,CryptSoft.exe将计算得到的授权许可全局唯一标识码SDCode回写到加密闪盘私密区第100扇区,并对应用软件进行授权许可认定,具体实现过程为:

(41):通过hDev =CreateFile(devName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL)获得加密闪盘私密区的设备句柄,devName变量存储了加密闪盘的盘符信息;通过SetFilePointer(hDev, 512 * 100, 0, FILE_BEGIN);将文件指针移动到加密闪盘的第100个扇区(扇区大小512字节);通过WriteFile(hDev, lpSectBuff, 512 * 1, NULL, NULL)将lpSectBuff缓冲区内存放的授权许可全局唯一标识码“179CD85907FF413D516B3A6223BF9684”写入加密闪盘的第100个扇区。

(42):通过  LPCTSTR path="Software\\CRIRP\\CryptSoft" 定义待处理的注册表路径,通过RegOpenKeyEx(HKEY_LOCAL_MACHINE,path,0,KEY_WRITE, &hKEY)和RegSetValueEx(hKEY,"SDCode",NULL,REG_SZ,(const unsigned char*)lpSectBuff,sizeof(lpSectBuff))将lpSectBuff缓冲区内存放的授权许可全局唯一标识码“179C-D859-07FF-413D-516B-3A62-23BF-9684”写入注册表的“HKEY_LOCAL_MACHINE\ Software\CRIRP\CryptSoft”的“SDCode”键值内完成对应用软件的授权许可认定。

步骤S205,用户断开加密闪盘与目标机的电气连接,CryptSoft.exe能够正常使用,具体实现过程为:

(51):从已授权目标机上取下加密闪盘;

(52):重新启动已授权通过的应用程序CryptSoft.exe,该软件能够正常运行;

(53):已绑定了全部许可目标机的加密闪盘无法对许可范围外的计算机实施软件许可授权,即使安装了应用程序CryptSoft.exe也因授权许可全局唯一标识码与当前计算机硬件信息的不匹配而无法通过验证,进而应用程序CryptSoft.exe不能正常启动和运行。

综上所述,本发明实施例提供了一种基于加密闪盘和大数据运算的软件授权许可方法,通过密文认证信息在注册表的常态存储和在加密闪盘私密区的备份存储机制能够便捷地为许可目标机实施授权许可认证,同时又通过安全的大数加密机制确保密文的逆向不可破解,为软件的正常运行和防破解提供了技术保障。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号