本发明涉及计算机软件,尤其涉及到一种基于有限随机加密的离线软件许可加解密方法及系统。
背景技术:
1、到目前为止,在个人电脑、专业工作站等计算机上,运行着大量功能强大的各种单机应用软件,对这些软件的许可一般通过密钥加密后以离线的方式分发给用户,如此虽然带来了软件获取与应用上的便捷性但同时也带来了软件被便于破解的风险。
2、软件许可的加密方式可以采用对称加密或对非称加密。对称加密是采用单密钥系统的加密方法,同一个密钥可以同时用作信息的加密和解密,并且无需对密钥进行管理,利于满足灵活多变的软件许可发放策略,但容易被破解;非称加密主要是把原始信息利用密钥对其进行签名,附上原始信息一起传输给用户端后(签名只能供验证用途,无法恢复出原始信息,所以要附带上原始信息),用户端利用公钥对签名和原始信息进行验证,若验证通过则说明信息真实有效。这主要保证了信息不会被篡改,因为只有手中有密钥的人才能制造有效签名来实现和篡改的信息一致,否则篡改信息无法通过公钥的验证,非对称加密的安全性依赖于密钥的管理,如果公钥被攻击者替换,或者私钥被泄露,就会导致加密的消息被攻击者窃取,并且密钥管理的难度较大,不利于满足灵活多变的软件许可发放策略。
3、如果把软件的离线许可设计得足够复杂,增加被破解的难度又不失去离线许可发放的便捷性的同时又将极大地减少应用软件被破解的风险,但盲目地增加离线许可解决方案的复杂性,可能又会带来软件开发与维护上的巨大成本。设计一种既几何倍数地提高破解难度又没有显著增加开发与维护上的成本,同时又保留离线许可发放的便捷性优点的软件许可保密方案,将极大地降低商品化应用软件被破解的风险,进一步保护软件供应商的利益,促进软件生态环境的稳定与发展。
技术实现思路
1、本发明提供一种基于有限随机加密的离线软件许可加解密方法及系统,旨在解决上述至少一个技术问题。
2、为实现上述目的,本发明提供一种基于有限随机加密的离线软件许可加解密方法,包括以下步骤:
3、配置密钥方阵和加解密方阵,生成许可加密配置表和许可解密配置表,并分别内置于目标加密服务器和目标验证软件;
4、目标加密服务器利用内置的许可加密配置表对软件许可信息进行加密,生成复合许可,将所述复合许可发送给用户;
5、目标验证软件在使用的每个验证周期,对复合许可中加密的软件许可信息进行提取,使用许可解密配置表解密软件许可信息,根据解密的软件许可信息,判断目标验证软件的许可验证是否通过。
6、可选的,配置加解密方阵和密钥方阵步骤,具体包括:
7、准备n×n个密钥放入n行n列的密钥方阵中,构成密钥方阵;
8、根据所述密钥方阵中每个位置的密钥,配置每个密钥对应的基本加密器和基本解密器,生成基本加密方阵和基本解密方阵;
9、提取所述密钥方阵、所述基本加密方阵和所述基本解密方阵中同一位置的元素构成基本加解密单元,基于全部基本加解密单元和每个基本加解密单元的位置,构建加解密方阵。
10、可选的,当n小于第一目标值时,采用人工赋值的方式,生成n×n个密钥;当n不小于第一目标值时,采用密钥生成程序批量的生成n×n个密钥。
11、可选的,当n小于第二目标值时,采用人工选择的方式,为密钥方阵中每个密钥对应的加解密单元设置加密算法;当n不小于第二目标值时,采用加密设置程序批量的为密钥方阵中每个密钥对应的加解密单元设置加密算法。
12、可选的,生成许可加密配置表和许可解密配置表,并分别内置于目标加密服务器和目标验证软件步骤,具体包括:
13、提取加解密方阵中的加解密关联信息;其中,所述加解密关联信息包括加解密方阵的大小、每个加解密单元的加密算法、密钥方阵和密钥长度;
14、将所述加解密关联信息写入许可加密配置表并内置于目标加密服务器,将所述加解密关联信息通过base64转码后写入许可解密配置表并内置于目标验证软件。
15、可选的,目标加密服务器利用内置的许可加密配置表对软件许可信息进行加密,生成复合许可,将所述复合许可发送给用户步骤,具体包括:
16、目标加密服务器利用内置的许可加密配置表建立基本加密器方阵,利用所述基本加密器方阵中的每个基本加密器依次对软件许可信息进行加密,获得n×n个加密软件许可;
17、其中,所述软件许可信息包括若干个许可软件安装特征,所述许可软件安装特征包括用户邮箱、有效日期和安装计算机的mac地址中的至少一种;
18、将获得的n×n个加密软件许可按照对应基本加密器在基本加密器方阵中的位置,构建加密许可方阵,将所述加密许可方阵作为复合许可发送给用户。
19、可选的,所述复合许可被配置为二进制形式的复合许可文件,所述复合许可文件包括文件头和加密许可方阵数据;
20、其中,所述文件头包括用于记录许可合同文本的ebcdic文件头和用于记录复合许可文件关键信息的二进制文件头;
21、其中,所述加密许可方阵数据包括若干个由许可道头和许可道数据构成的加密许可道组成,所述许可道头被配置为记录加密许可方阵中每个加密许可的行号、列号、大小信息,所述加密许可道被配置为记录加密许可方阵中每个加密许可的数据。
22、可选的,目标验证软件在使用的每个验证周期,对复合许可中加密的软件许可信息进行提取,使用许可解密配置表解密软件许可信息,根据解密的软件许可信息,判断目标验证软件的许可验证是否通过步骤,具体包括:
23、目标验证软件在使用的每个验证周期,使用随机路径规划器规划一条路径,提取所述路径中每个节点的坐标,基于所述坐标与所述复合许可匹配每个节点对应的加密许可信息;
24、目标验证软件利用内置的许可加密配置表建立基本解密器方阵,使用基本解密器方阵中的基本解密器对相对应位置的加密许可信息进行解密,获得若干个解密的软件许可信息;
25、判断每个解密的软件许可信息中的每个许可软件安装特征与目标验证软件当前的每个实际软件安装特征是否完全匹配;若是,目标验证软件在当前验证周期的许可验证通过,若否,目标验证软件在当前验证周期的许可验证不通过。
26、可选的,目标验证软件在使用的每个验证周期,使用随机路径规划器规划一条路径,提取所述路径中每个节点的坐标,基于所述坐标与所述复合许可匹配每个节点对应的加密许可信息步骤,具体包括:
27、目标验证软件在使用的每个验证周期,使用随机路径规划器生成一个大小为n×n的地图,使用随机算法在所述地图中生成障碍物;其中,所述随机算法包括随机点生成算法或随机网格算法;
28、随机在地图上选择位置不同的起点和终点,使用路径规划算法计算从起点到终点的最短路径;其中,所述路径规划算法包括广度优先搜索算法或迪杰斯特拉算法;
29、提取所述路径中每个节点在地图中的坐标,基于所述坐标在所述复合许可的加密许可方阵中匹配每个节点对应的加密许可信息。
30、此外,为了实现上述目的,本发明还提供了一种基于有限随机加密的离线软件许可加解密系统,包括:
31、配置终端,配置密钥方阵和加解密方阵,生成许可加密配置表和许可解密配置表,并分别内置于目标加密服务器和目标验证软件;
32、目标加密服务器,利用内置的许可加密配置表对软件许可信息进行加密,生成复合许可,将所述复合许可发送给用户;
33、目标验证软件,在使用的每个验证周期,对复合许可中加密的软件许可信息进行提取,使用许可解密配置表解密软件许可信息,根据解密的软件许可信息,判断目标验证软件的许可验证是否通过。
34、本发明的有益效果在于:提出了一种基于有限随机加密的离线软件许可加解密方法及系统,通过配置密钥方阵和加解密方阵,利用内置于目标加密服务器的生成许可加密配置表和内置于目标验证软件的许可解密配置表,实现在服务器端进行的软件许可信息加密与分发以及在验证软件端周期进行的软件许可信息解密与验证。相对于对软件许可信息进行传统的对称加密,扩展成对称加密方阵,形成加密集群,在被许可的软件端验证许可信息时,采用二维随机路径规划方法在有限的面积范围内进行小比例的随机基本许可单元列表解密许可并进行信息验证,在保证解密与验证效率的同时增加了一定的随机性,显著地增加了许可被破解的难度,同时,通过在每个验证周期执行方阵坐标随机的若干个软件许可信息解密与验证,既能够实现许可验证的持续性,进一步增加破解难度,还能够降低每次验证的耗时,提升用户登录使用体验。
1.一种基于有限随机加密的离线软件许可加解密方法,其特征在于,包括以下步骤:
2.如权利要求1所述的基于有限随机加密的离线软件许可加解密方法,其特征在于,配置加解密方阵和密钥方阵步骤,具体包括:
3.如权利要求2所述的基于有限随机加密的离线软件许可加解密方法,其特征在于,当n小于第一目标值时,采用人工赋值的方式,生成n×n个密钥;当n不小于第一目标值时,采用密钥生成程序批量的生成n×n个密钥。
4.如权利要求2所述的基于有限随机加密的离线软件许可加解密方法,其特征在于,当n小于第二目标值时,采用人工选择的方式,为密钥方阵中每个密钥对应的加解密单元设置加密算法;当n不小于第二目标值时,采用加密设置程序批量的为密钥方阵中每个密钥对应的加解密单元设置加密算法。
5.如权利要求2所述的基于有限随机加密的离线软件许可加解密方法,其特征在于,生成许可加密配置表和许可解密配置表,并分别内置于目标加密服务器和目标验证软件步骤,具体包括:
6.如权利要求1所述的基于有限随机加密的离线软件许可加解密方法,其特征在于,目标加密服务器利用内置的许可加密配置表对软件许可信息进行加密,生成复合许可,将所述复合许可发送给用户步骤,具体包括:
7.如权利要求6所述的基于有限随机加密的离线软件许可加解密方法,其特征在于,所述复合许可被配置为二进制形式的复合许可文件,所述复合许可文件包括文件头和加密许可方阵数据;
8.如权利要求6所述的基于有限随机加密的离线软件许可加解密方法,其特征在于,目标验证软件在使用的每个验证周期,对复合许可中加密的软件许可信息进行提取,使用许可解密配置表解密软件许可信息,根据解密的软件许可信息,判断目标验证软件的许可验证是否通过步骤,具体包括:
9.如权利要求8所述的基于有限随机加密的离线软件许可加解密方法,其特征在于,目标验证软件在使用的每个验证周期,使用随机路径规划器规划一条路径,提取所述路径中每个节点的坐标,基于所述坐标与所述复合许可匹配每个节点对应的加密许可信息步骤,具体包括:
10.一种基于有限随机加密的离线软件许可加解密系统,其特征在于,包括:
