一种软件激活方法及其相关装置转让专利

申请号 : CN202011205998.0

文献号 : CN112398818B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢帆

申请人 : 深圳数联天下智能科技有限公司

摘要 :

本发明实施例涉及智能设备技术领域,公开了一种软件激活方法,智能设备发送的激活请求信息是进行加密后的信息,可以对智能设备和目标软件的相关信息进行保密。服务端根据所述激活请求信息,生成激活信息明文,然后,采用预设对称加密算法对所述激活信息明文进行加密,并在加密的过程中引入初始向量随机数,使得每台智能设备得到的激活信息密文各不相同,无法被复制使用,从而,能够很好的保护软件生产商的权益。

权利要求 :

1.一种软件激活方法,应用于智能设备,所述智能设备与服务端通信连接,其特征在于,所述智能设备配置有第一公钥和第一私钥,所述第一公钥基于所述第一私钥生成,所述服务端配置有第二公钥和第二私钥,所述第二公钥基于所述第二私钥生成,所述智能设备与所述服务端共享密钥生成参数;

所述方法包括:

生成激活请求信息,并向所述服务端发送所述激活请求信息,其中,所述激活请求信息包括第一标识密文和所述第一公钥,所述第一标识密文是原标识信息经第一加密处理后得到的密文,所述原标识信息包括所述智能设备的第一设备标识和目标软件的软件标识,所述目标软件为存储于所述智能设备中待激活的软件,所述激活请求信息用于获取激活所述目标软件的运行参数;

接收所述服务端发送的激活信息密文、所述第二公钥和预设对称加密算法的初始向量,其中,所述激活信息密文是所述服务端利用第一公共密钥和所述预设对称加密算法,对激活信息明文进行第二加密处理后的信息,其中,所述激活信息明文是所述服务端根据所述第一标识密文和所述运行参数生成的信息,所述第一公共密钥是所述服务端根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥,所述初始向量为随机数,所述运行参数存储于所述服务端中,所述运行参数用于使所述目标软件激活;

根据所述初始向量和第二公共密钥,对所述激活信息密文进行解密,以获得所述激活信息明文,其中,所述第二公共密钥为根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥,并且,所述第二公共密钥与所述第一公共密钥相同;

根据所述激活信息明文,对所述目标软件进行激活。

2.根据权利要求1所述的方法,其特征在于,所述第一加密处理包括第一哈希处理,所述生成激活请求信息,包括:对所述原标识信息进行第一哈希处理,以获取所述第一标识密文;

对所述第一标识密文进行第二哈希处理,以获取所述第一私钥;

根据所述第一私钥结合所述密钥生成参数,生成所述第一公钥。

3.根据权利要求1或2所述的方法,其特征在于,所述根据所述初始向量和第二公共密钥,对所述激活信息密文进行解密,以获得所述激活信息明文,包括:根据所述第二公共密钥和所述初始向量,生成所述预设对称加密算法的解密密钥链;

将所述激活信息密文和所述解密密钥链进行异或运算,以获取所述激活信息明文。

4.根据权利要求3所述的方法,其特征在于,所述根据所述激活信息明文,对所述目标软件进行激活,包括:对所述激活信息明文进行解析获得第二标识密文和所述运行参数;

根据所述第二标识密文,获取所述第二标识密文对应的第二设备标识;

如果所述第二设备标识与所述第一设备标识相同,则根据所述运行参数对所述目标软件进行激活。

5.一种软件激活方法,应用于服务端,所述服务端与智能设备通信连接,其特征在于,所述智能设备配置有第一公钥和第一私钥,所述第一公钥基于所述第一私钥生成,所述服务端配置有第二公钥和第二私钥,所述第二公钥基于所述第二私钥生成,所述智能设备与所述服务端共享密钥生成参数;

所述方法包括:

接收所述智能设备发送的激活请求信息,所述激活请求信息包括第一标识密文和所述第一公钥,所述第一标识密文是原标识信息经第一加密处理后得到的密文,所述原标识信息包括所述智能设备的第一设备标识和目标软件的软件标识,所述目标软件为存储于所述智能设备中待激活的软件,所述激活请求信息用于获取激活所述目标软件的运行参数;

提取所述激活请求信息中的所述第一标识密文,并根据所述第一标识密文,生成激活信息明文;

根据第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文,其中,所述第一公共密钥为根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥;

将所述激活信息密文、所述第二公钥和所述预设对称加密算法的初始向量,发送至所述智能设备,以使所述智能设备根据所述初始向量和第二公共密钥解密所述激活信息密文,获得所述激活信息明文,用以对所述目标软件进行激活,其中,所述第二公共密钥与所述第一公共密钥相同,所述第二公共密钥为根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥。

6.根据权利要求5所述的方法,其特征在于,所述根据所述第一标识密文,生成激活信息明文,包括:根据所述第一标识密文,确定所述运行参数,所述运行参数用于使所述目标软件激活;

将所述第一标识密文与所述运行参数拼接,以生成所述激活信息明文。

7.根据权利要求5或6所述的方法,其特征在于,所述根据第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文,包括:根据所述第一公共密钥和所述初始向量,生成所述对称加密算法的加密密钥链,其中,所述初始向量为随机数;

将所述激活信息明文和所述加密密钥链进行异或运算,以获取所述激活信息密文。

8.根据权利要求5所述的方法,其特征在于,所述激活请求信息中还包括目标用户标识,所述目标用户标识为所述智能设备的用户标识;

在所述根据所述第一标识密文,生成激活信息明文的步骤之前,还包括:根据所述第一标识密文,确定所述智能设备的第一设备标识;

根据所述目标用户标识和预先存储的用户配置信息,确定所述目标用户标识对应的剩余激活次数;

如果所述剩余激活次数大于或等于1,则执行根据所述第一标识密文,生成激活信息明文的步骤,并记录所述第一设备标识,更新所述剩余激活次数。

9.根据权利要求8所述的方法,其特征在于,所述第二私钥为随机数;

所述根据第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文之前还包括:根据所述第二私钥并结合所述密钥生成参数,生成所述第二公钥。

10.一种电子设备,其特征在于,包括:

至少一个处理器,以及

与所述至少一个处理器通信连接的存储器,其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑9任一项所述的方法。

11.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行如权利要求1‑9任一项所述的方法。

说明书 :

一种软件激活方法及其相关装置

技术领域

[0001] 本发明实施例涉及智能设备技术领域,尤其涉及一种软件激活方法及其相关装置。

背景技术

[0002] 随着知识收费服务意识的增强,在智能设备领域,设备中的部分软件具有的高级功能,需要用户购买激活才能使用。
[0003] 例如,设备生成商生产的设备需要装载有相应的软件,才能实现设备的正常运行。往往,设备生产商需要向软件生产商购买相应的软件,软件生成商首先将未激活的软件供设备生产商下载至设备,在设备出货前,设备生产商需要对软件进行激活,激活成功后,软件才能在设备上正常使用,从而,设备才能实现与软件相对应的功能。
[0004] 然而,目前的软件激活方法,容易被他人破解,复制到多台设备,破坏了软件的版权,导致软件生产商的利益受损。

发明内容

[0005] 本发明实施例主要解决的技术问题是提供一种软件激活方法及其相关装置,使得激活后的软件无法在其他设备上复制使用,能有效保护软件版权。
[0006] 为解决上述技术问题,第一方面,本发明实施例中提供给了一种软件激活方法,应用于智能设备,所述智能设备与服务端通信连接,所述智能设备配置有第一公钥和第一私钥,所述第一公钥基于所述第一私钥生成,所述服务端配置有第二公钥和第二私钥,所述第二公钥基于所述第二私钥生成,所述智能设备与所述服务端共享密钥生成参数;
[0007] 所述方法包括:
[0008] 生成激活请求信息,并向所述服务端发送所述激活请求信息,其中,所述激活请求信息包括第一标识密文和所述第一公钥,所述第一标识密文是原标识信息经第一加密处理后得到的密文,所述原标识信息包括所述智能设备的第一设备标识和目标软件的软件标识,所述目标软件为存储于所述智能设备中待激活的软件,所述激活请求信息用于获取激活所述目标软件的运行参数;
[0009] 接收所述服务端发送的激活信息密文、所述第二公钥和预设对称加密算法的初始向量,其中,所述激活信息密文是所述服务端利用第一公共密钥和所述预设对称加密算法,对激活信息明文进行第二加密处理后的信息,其中,所述激活信息明文是所述服务端根据所述第一标识密文和所述运行参数生成的信息,所述第一公共密钥是所述服务端根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥,所述初始向量为随机数,所述运行参数存储于所述服务端中,所述运行参数用于使所述目标软件激活;
[0010] 根据所述初始向量和第二公共密钥,对所述激活信息密文进行解密,以获得所述激活信息明文,其中,所述第二公共密钥为根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥,并且,所述第二公共密钥与所述第一公共密钥相同;
[0011] 根据所述激活信息明文,对所述目标软件进行激活。
[0012] 在一些实施例中,所述第一加密处理包括第一哈希处理,所述生成激活请求信息,包括:
[0013] 对所述原标识信息进行第一哈希处理,以获取所述第一标识密文;
[0014] 对所述第一标识密文进行第二哈希处理,以获取所述第一私钥;
[0015] 根据所述第一私钥结合所述密钥生成参数,生成所述第一公钥。
[0016] 在一些实施例中,所述根据所述初始向量和第二公共密钥,对所述激活信息密文进行解密,以获得所述激活信息明文,包括:
[0017] 根据所述第二公共密钥和所述初始向量,生成所述预设对称加密算法的解密密钥链;
[0018] 将所述激活信息密文和所述解密密钥链进行异或运算,以获取所述激活信息明文。
[0019] 在一些实施例中,所述根据所述激活信息明文,对所述待激活软件进行激活,包括:
[0020] 对所述激活信息明文进行解析获得第二标识密文和所述运行参数;
[0021] 根据所述第二标识密文,获取所述第二标识密文对应的第二设备标识;
[0022] 如果所述第二设备标识与所述第一设备标识相同,则根据所述运行参数对所述目标软件进行激活。
[0023] 为解决上述技术问题,第二方面,本发明实施例中提供给了一种软件激活方法,应用于服务端,所述服务端与智能设备通信连接,所述智能设备配置有第一公钥和第一私钥,所述第一公钥基于所述第一私钥生成,所述服务端配置有第二公钥和第二私钥,所述第二公钥基于所述第二私钥生成,所述智能设备与所述服务端共享密钥生成参数;
[0024] 所述方法包括:
[0025] 接收所述智能设备发送的激活请求信息,所述激活请求信息包括第一标识密文和所述第一公钥,所述第一标识密文是原标识信息经第一加密处理后得到的密文,所述原标识信息包括所述智能设备的第一设备标识和目标软件的软件标识,所述目标软件为存储于所述智能设备中待激活的软件,所述激活请求信息用于获取激活所述目标软件的运行参数;
[0026] 提取所述激活请求信息中的所述第一标识密文,并根据所述第一标识密文和所述运行参数,生成激活信息明文;
[0027] 根据第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文,其中,所述第一公共密钥为根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥;
[0028] 将所述激活信息密文、所述第二公钥和所述预设对称加密算法的初始向量,发送至所述智能设备,以使所述智能设备根据所述初始向量和第二公共密钥解密所述激活信息密文,获得所述激活信息明文,用以对所述目标软件进行激活,其中,所述第二公共密钥与所述第一公共密钥相同,所述第二公共密钥为根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥。
[0029] 在一些实施例中,所述根据所述第一标识密文,生成激活信息明文,包括:
[0030] 根据所述第一标识密文,确定所述运行参数,所述运行参数用于使所述目标软件激活;
[0031] 将所述第一标识密文与所述运行参数拼接,以生成所述激活信息明文。
[0032] 在一些实施例中,所述根据所述第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文,包括:
[0033] 根据所述第一公共密钥和所述初始向量,生成所述对称加密算法的加密密钥链,其中,所述初始向量为随机数;
[0034] 将所述激活信息明文和所述加密密钥链进行异或运算,以获取所述激活信息密文。
[0035] 在一些实施例中,所述激活请求信息中还包括目标用户标识,所述目标用户标识为所述智能设备的用户标识;
[0036] 在所述根据所述第一标识密文,生成激活信息明文的步骤之前,还包括:
[0037] 根据所述第一标识密文,确定所述智能设备的第一设备标识;
[0038] 根据所述目标用户标识和预先存储的用户配置信息,确定所述目标用户标识对应的剩余激活次数;
[0039] 如果所述剩余激活次数大于或等于1,则执行根据所述第一标识密文,生成激活信息明文的步骤,并记录所述第一设备标识,更新所述剩余激活次数。
[0040] 在一些实施例中,所述第二私钥为随机数;
[0041] 所述根据第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文之前还包括:
[0042] 根据所述第二私钥并结合所述密钥生成参数,生成所述第二公钥。
[0043] 为解决上述技术问题,第三方面,本发明实施例中提供给了一种电子设备,包括:
[0044] 至少一个处理器,以及
[0045] 与所述至少一个处理器通信连接的存储器,其中,
[0046] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上第一方面或如上第二方面所述的方法。
[0047] 为解决上述技术问题,第四方面,本发明实施例中提供给了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行如上第一方面或如上第二方面所述的方法。
[0048] 本发明实施例的有益效果:区别于现有技术的情况,本发明实施例提供的软件激活方法,智能设备发送的激活请求信息是进行加密后的信息,可以对智能设备和目标软件的相关信息进行保密。服务端根据所述激活请求信息,生成激活信息明文,然后,采用预设对称加密算法对所述激活信息明文进行加密,并在加密的过程中引入初始向量随机数,使得每台智能设备得到的激活信息密文各不相同,无法被复制使用,从而,能够很好的保护软件生产商的权益。

附图说明

[0049] 一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
[0050] 图1为本发明其中一实施例提供的软件激活方法适用的系统架构图;
[0051] 图2为本发明其中一实施例提供的电子设备的硬件结构示意图;
[0052] 图3为本发明其中一实施例提供的应用于智能设备的软件激活方法的流程示意图;
[0053] 图4为图3所示方法中步骤S21的一子流程示意图;
[0054] 图5为图3所示方法中步骤S23的一子流程示意图;
[0055] 图6为图3所示方法中步骤S24的一子流程示意图;
[0056] 图7为本发明其中一实施例提供的应用于服务端的软件激活方法的流程示意图;
[0057] 图8为图7所示方法中步骤S32的一子流程示意图;
[0058] 图9为图7所示方法中步骤S33的一子流程示意图;
[0059] 图10为本发明其中一实施例提供的应用于服务端的软件激活方法的流程示意图;
[0060] 图11为本发明其中一实施例提供的应用于服务端的软件激活方法的流程示意图;
[0061] 图12为本发明其中一实施例提供的软件激活方法的示意性交互流程图。

具体实施方式

[0062] 下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0063] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
[0064] 需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。此外,本文所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
[0065] 除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0066] 此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0067] 本申请实施例提供的软件激活方法,可以适用于如图1所述的系统架构中。该系统包括智能设备10和服务端20。所述智能设备10与所述服务端20通信连接。
[0068] 所述通信连接可以是有线连接,例如:光纤电缆,也可以是无线通信连接,例如:WIFI连接、蓝牙连接、4G无线通信连接,5G无线通信连接等等。可以理解的是,当所述智能设备10没有无线通讯模块时,所述智能设备10和所述服务端20也可以间接连接,例如,所述智能设备10通过连接终端(图未示)与所述服务端20连接。具体的,所述智能设备10通过串口与所述连接终端连接,所述智能设备10需要发送至服务端20的信息,通过所述连接终端转发至所述服务端20,所述服务端20需要发送至所述智能设备10的信息,再次通过所述连接终端转发至所述智能设备10。
[0069] 其中,所述智能设备10可以是计算机、蜂窝电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、交互智能平板、可穿戴设备、智能机车、智能冰箱、其他智能家居设备或者这些设备中的任意几种设备的组合。智能设备10内可以安装有各种应用程序,如文本编辑类应用程序、文稿演示类应用程序、即时通讯类应用程序、图像编辑类应用程序、社交类应用程序、电商类应用程序、搜索类应用程序、浏览器类应用程序等等。其中,文本编辑类应用程序如电子白板应用、电子黑板应用,文稿演示类应用程序如无线传屏应用,即时通讯类应用程序如视频会议应用。
[0070] 在一些实施例中,所述连接终端还用于提供前端网页,以供用户登陆所述服务端,例如,通过前端网页输入用户名和密码,登陆所述服务端20,并上传用户凭证和软件的通用唯一识别码(Universally Unique Identifier,UUID),以进行验证,得到所述服务端20的激活许可。可以理解的是,所述连接终端以及服务端20可以布置在同一设备中,也可以分别布置在不同的设备中。当分别布置在不同的设备中时,连接终端可以作为独立的计算机设备,服务端20可以作为云端服务器。
[0071] 在实施例中,所述智能设备10生成激活请求信息,并将所述激活请求信息发送至所述服务端20,具体的,可直接发送至所述服务端20,也可通过上述连接终端转发至所述服务端20。所述服务端20根据所述激活请求信息,生成相应的激活信息,并将所述激活信息发送至所述智能设备10,从而,所述智能设备10可以根据所述激活信息对待激活的目标软件进行激活。
[0072] 然而,在激活信息的传输过程中,他人可能截取传输中的激活信息,从而,复制该激活信息,进行多次使用,给软件生产商带来损失。基于此,本实施例中,通过对所述激活信息和激活请求信息进行加密,在加密激活信息的过程中引入随机因素,使得每台智能设备10得到的加密激活信息各不相同,从而,使得所述加密激活信息无法泄露,不能被复制使用。
[0073] 在上述图1的基础上,本发明的其中一实施例提供了一种电子设备200,所述电子设备200可以为上述智能设备10,也可以为上述服务端20。请参阅图2,为本发明实施例提供的一种电子设备200的硬件结构图,具体的,如图2所示,所述电子设备200包括通信连接的至少一个处理器201和存储器202(图2中以总线连接、一个处理器为例)。
[0074] 其中,所述处理器201用于提供计算和控制能力,以控制电子设备200执行相应任务,例如,控制所述电子设备200执行下述发明实施例提供的任意一种软件激活方法。
[0075] 可以理解的是,所述处理器201可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0076] 所述存储器202作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本发明实施例中的软件激活方法对应的程序指令/模块。所述处理器201通过运行存储在存储器202中的非暂态软件程序、指令以及模块,可以实现下述任一方法实施例中的软件激活方法。具体地,所述存储器202可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器202还可以包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0077] 以下,对本发明实施例提供的软件激活方法进行详细说明,在本实施例中所述软件激活方法应用于智能设备,所述智能设备可以为图1中所示的智能设备10,所述智能设备和服务端通信连接。所述智能设备配置有第一公钥和第一私钥,所述第一公钥基于所述第一私钥生成,所述服务端配置有第二公钥和第二私钥,所述第二公钥基于所述第二私钥生成,所述智能设备与所述服务端共享密钥生成参数。其中,所述密钥生成参数是指由私钥生成公钥时加密算法中的基准点,例如,所述密钥生成参数为椭圆曲线密码学中的基点G。所述智能设备与所述服务端共享密钥生成参数,即,第一私钥生成第一公钥时,和,第二私钥生成第二公钥时,均采用相同的密钥生成参数,从而,使得所述智能设备和所述服务端能进行密钥通信。
[0078] 请参阅图3,所述方法S20包括但不限制于以下步骤:
[0079] S21:生成激活请求信息,并向所述服务端发送所述激活请求信息。
[0080] 其中,所述激活请求信息包括第一标识密文和所述第一公钥,所述第一标识密文是原标识信息经第一加密处理后得到的密文,所述原标识信息包括所述智能设备的第一设备标识和目标软件的软件标识,所述目标软件为存储于所述智能设备中待激活的软件,所述激活请求信息用于获取激活所述目标软件的运行参数。
[0081] S22:接收所述服务端发送的激活信息密文、所述第二公钥和预设对称加密算法的初始向量;
[0082] 其中,所述激活信息密文是所述服务端利用第一公共密钥和所述预设对称加密算法,对激活信息明文进行第二加密处理后的信息,其中,所述激活信息明文是所述服务端根据所述第一标识密文和所述运行参数生成的信息,所述第一公共密钥是所述服务端根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥,所述初始向量为随机数,所述运行参数存储于所述服务端中,所述运行参数用于使所述目标软件激活。
[0083] S23:根据所述初始向量和第二公共密钥,对所述激活信息密文进行解密,以获得所述激活信息明文。
[0084] 其中,所述第二公共密钥为根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥,并且,所述第二公共密钥与所述第一公共密钥相同。
[0085] S24:根据所述激活信息明文,对所述目标软件进行激活。
[0086] 在本实施例中,为了保证激活信息在传输过程中的安全性,智能设备会生成第一公钥和第一私钥,其中,所述第一公钥基于所述第一私钥生成,服务端会生成第二公钥和第二私钥,所述第二公钥基于所述第二私钥生成,所述智能设备与所述服务端共享密钥生成参数,从而,使得所述智能设备和所述服务端可以进行密钥通信。
[0087] 具体的,所述智能设备将第一私钥保存,并将第一公钥上传至服务端,所述服务端利用所述第一公钥将需要返回至所述智能设备的激活信息进行加密,并将加密激活信息传输至智能设备,智能设备利用第一私钥对加密激活信息进行解密。可以理解的是,所述智能设备每发送一次激活请求信息以及所述服务端每发送一次加密激活信息,所述智能设备和所述服务端均会各自更新公钥和私钥,因此,每次进行信息传输时,第一公钥和第一私钥均不相同,以及,第二公钥和第二私钥也均不相同,可以有效避免由于某个智能设备或服务端的密钥泄露而导致所有智能设备和服务端存在安全风险的问题。
[0088] 在步骤S21中,所述智能设备生成激活请求信息,并向所述服务端发送所述激活请求信息。其中,所述激活请求信息包括第一标识密文和所述第一公钥,其中,所述第一标识密文是原标识信息经第一加密处理后得到的密文。从而,所述激活请求信息是经过加密后的信息,即使在网络中传输也不会泄露有关智能设备的任何信息。
[0089] 所述原标识信息包括所述智能设备的第一设备标识和目标软件的软件标识,所述目标软件为存储于所述智能设备中待激活的软件。例如,所述第一设备标识为智能设备的芯片身份标识号(Identity document,ID),即用于确定智能设备身份的唯一识别码,所述软件标识为所述目标软件的UUID,即用于确定目标软件身份的唯一识别码。
[0090] 所述激活请求信息用于获取激活所述目标软件的运行参数,也即,为使所述目标软件激活,能够正常运行,所述激活请求信息会告知服务端所述目标软件所需的运行参数,从而,服务端会根据所述激活请求信息,确定相应的运行参数,以反馈给所述智能设备。可以理解的是,所述服务端中预先存储有目标软件和运行参数的对应关系,服务端可根据所述激活请求信息,确定目标软件的UUID,从而,确定目标软件对应的运行参数。
[0091] 服务端在接收到所述激活请求信息后,会生成激活信息密文,以发送给所述智能设备。在所述步骤S22中,所述智能设备接收所述服务端发送的激活信息密文、所述第二公钥和预设对称加密算法的初始向量,也即,激活信息是由所述服务端对激活信息明文进行第二加密处理后的信息,以密文的形式传输,不会造成激活信息泄露。
[0092] 具体的,所述激活信息密文是所述服务端利用第一公共密钥和所述预设对称加密算法,对激活信息明文进行第二加密处理后的信息。其中,所述预设对称加密算法也称为采用单钥密码的加密方法,即同一个密钥可以同时用来加密和解密。例如,所述智能设备和所述服务端可采用AES‑256对称加密算法,以第一公共密钥对所述激活信息明文进行加密,以第二公共密钥对所述激活信息密文进行解密,第一公共密钥和第二公共密钥相同。
[0093] 由于对称加密算法是通过移位等手段进行加密,加密过程简单,加解密的效率高。其次,所述对称加密算法的初始向量用于在生成密钥链时为密钥链增加随机性,所述初始向量为随机数,每次生成的加密密钥链不同,即由加密密钥链加密得到的加密密文不同,并且,对于同样的明文,将所述明文拆分成多个子明文块,对于每个子明文块使用不同的初始向量进行加密后得到的密文,无法进行字典破解。
[0094] 综上所述,将初始向量设置为随机数,可以提高保密性,有效避免字典攻击。在加密过程中和解密过程中需要相同的初始向量。因此,所述服务端每次均需要发送预设对称加密算法的初始向量给所述智能设备。
[0095] 其中,所述激活信息明文是所述服务端根据所述第一标识密文和运行参数生成的信息,所述运行参数存储于所述服务端中,所述运行参数用于使所述目标软件激活,也即,目标软件在获取到所述运行参数后才能正常使用。
[0096] 例如,服务端将第一标识密文H和运行参数P拼接生成激活信息明文,所述激活信息明文中不仅包括激活目标软件所需的运行参数P,还包括第一标识密文,从而,所述激活信息明文能反映所述智能设备的设备标识和目标软件的软件标识,从而,有利于后续所述智能设备进行解密激活时,进行校对,一方面,确保所述运行参数与所述智能设备匹配,另一方面,可通过设备标识和软件标识确保所述运行参数与智能设备和目标软件是一一对应的。
[0097] 在本实施例中,所述服务端利用第一公共密钥和所述预设对称加密算法,对激活信息明文进行第二加密处理,以获取所述激活信息密文。其中,所述第一公共密钥是所述服务端根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥。
[0098] 例如,所述预设对称加密算法为256位的高级加密标准算法(Advanced Encryption Standard,AES256),所述服务端采用第一公共密钥S和对称加密算法AES256,对所述激活信息明文进行第二加密处理,而其中,第一公共密钥S是所述第一公钥kd和第二私钥r通过预设的密钥协商算法生成的。其中,密钥协商算法又称为密钥交换算法,例如,可以是椭圆曲线迪菲‑赫尔曼秘钥交换算法(Elliptic Curve Diffie–Hellman key Exchange,ECDH),所述ECDH是基于椭圆曲线密码体制(Elliptic Curve Cryptosystems,ECC)的迪菲‑赫尔曼密钥交换算法(Diffie–Hellman key exchange,DH)密钥交换算法。从而,实现所述智能设备和所述服务端双方在不共享任何秘密的情况下协商出一个共同的密钥。
[0099] 在步骤S23中,所述智能设备根据所述初始向量和第二公共密钥,对所述激活信息密文进行解密,即可得到所述激活信息明文。其中,所述第二公共密钥是所述智能设备根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥,并且,所述第二公共密钥与所述第一公共密钥相同,使得所述第二公共密钥可以对所述激活信息密文进行解密,同时,以满足对称加密算法的特征,使得方案具有对称加密算法的优点,即计算量小、加密速度快、加密效率高。
[0100] 在步骤S24中,所述智能设备根据所述激活信息明文,对所述目标软件进行激活。也即,将所述激活信息明文中的运行参数存储于内存中,以供所述目标软件使用,从而,使得所述目标软件能正常运行。
[0101] 在本实施例中,智能设备发送的激活请求信息是进行加密后的信息,可以对智能设备和目标软件的相关信息进行保密。所述智能设备接收到的激活信息密文是采用预设对称加密算法进行加密的,保密性强,并且在加密的过程中引入初始向量随机数,使得每台智能设备得到的激活信息密文各不相同,无法被复制使用,从而,能够很好的保护软件生产商的权益。
[0102] 在一些实施例中,所述第一加密处理包括第一哈希处理,请参阅图4,所述步骤S21具体包括:
[0103] S211:对所述原标识信息进行第一哈希处理,以获取所述第一标识密文。
[0104] S212:对所述第一标识密文进行第二哈希处理,以获取所述第一私钥。
[0105] S213:根据所述第一私钥结合所述密钥生成参数,生成所述第一公钥。
[0106] 在所述步骤S211中,所述第一哈希处理是将原标识信息通过逻辑运算得到第一散列值,即在第一哈希处理过程中,将原标识信息转变成他人不能识别的第一设备标识和软件标识的第一散列值,即对所述原标识信息进行加密,并将所述散列值作为所述第一标识密文,从而,得到所述第一标识密文。例如,将原标识信息“设备ID:123,软件UUID:456”,进行第一哈希处理后,输出第一标识密文H:“2124968af757ed51e71e6abeac04f98d”。
[0107] 在所述步骤S212中,再对所述第一标识密文进行第二哈希处理,以获取所述第一私钥。同理,所述第二哈希处理是将所述第一标识密文通过逻辑运算得到第二散列值,值得说明的是,所述第二散列值为数值,从而,将所述第二散列值作为所述第一私钥k,也即,所述第一私钥k为根据所述原标识信息生成的数值。也即,在此实施中,将原标识信息进行两次哈希处理获得所述第一私钥,一方面,两次哈希处理可以增加第一私钥的离散型,例如,使得若干个智能设备的第一私钥均不具有任何规律性,增加了第一私钥的保密性,另一方面,在原标识信息具有唯一性的基础上,由原标识信息经两次哈希处理生成第一私钥,进而生成第一公钥,使得第一私钥和第一公钥具有随机性和不重复性,不容易被破解。
[0108] 在一些实施例中,也可将所述第一标识密文的部分,例如前5位字符,进行第二哈希处理,获得第一私钥k。可以理解的是,对第一标识密文的截取具有随机性,例如,对第一标识密文M1截取4位进行第二哈希处理以获取第一私钥,对第一标识密文M2截取6位进行第二哈希处理以获取第一私钥。通过上述方式,可以有效增加第一标识密文的随机性和不规律性,从而,使得第一私钥保密性强,不容易被破解。
[0109] 在所述步骤S213中,所述智能设备根据所述第一私钥k结合所述密钥生成参数,生成所述第一公钥kd。其中,所述密钥生成参数为密钥生成算法中的参数。例如,所述密钥生成参数为椭圆曲线密码学(Elliptic curve cryptography,ECC)中的椭圆曲线参数,即椭圆曲线上的基点G,所述智能设备和所述服务端的基点G相同,则所述第一公钥kd=k*G,其中,k为所述第一私钥。可以理解的是,所述基点G可以是根据大量的实验结果确定的,也可以根据现有的标准基点表而设定。
[0110] 在本实施例中,通过对原标识信息进行第一哈希处理,获取用于发送给所述服务端的所述第一标识密文,从而对原标识信息进行保密。经两次哈希处理,获取所述第一私钥。通过两次哈希处理增加密文(第一私钥)的离散型,从而,提高保密性。再根据所述第一私钥,结合所述密钥生成参数,生成所述第一公钥,从而,使得所述第一公钥也具有较高的保密性。
[0111] 在一些实施例中,请参阅图5,所述步骤S23具体包括:
[0112] S231:根据所述第二公共密钥和所述初始向量,生成所述预设对称加密算法的解密密钥链。
[0113] S232:将所述激活信息密文和所述解密密钥链进行异或运算,以获取所述激活信息明文。
[0114] 例如,若所述第二公共密钥S2为第一私钥k和第二公钥ks的乘积,则可以根据所述第二公共密钥S2的横坐标XS2和所述初始向量IV生成所述解密密钥链。即,在所述解密解密密钥链中添加在加密过程中引入的初始向量随机数,从而,获取能够解密激活信息密文C的解密密钥链。
[0115] 在本实施例中,通过第二公共密钥和所述初始向量,即可对所述激活信息密文进行解密,一方面,所述第二公共密钥是智能设备生成的,不涉及公共密钥的传输,增加保密性,另一方面,通过初始向量,引入随机因素,使得所述智能设备每次生成的解密密钥链都不相同,从而,可以避免因某一解密密钥链丢失而被复制使用。
[0116] 在一些实施例中,请参阅图6,所述步骤S24具体包括:
[0117] S241:对所述激活信息明文进行解析获得第二标识密文和所述运行参数。
[0118] S242:根据所述第二标识密文,获取所述第二标识密文对应的第二设备标识。
[0119] S243:如果所述第二设备标识与所述第一设备标识相同,则根据所述运行参数对所述目标软件进行激活。
[0120] 例如,所述智能设备在解密获得所述激活信息明文M后,对所述激活信息明文M进行解析,获得第二标识密文H’和所述运行参数。可以理解的是,所述第二标识密文H’中包括第二设备标识和目标软件的软件标识。从而,可以根据所述第二标识密文H’获取所述第二标识密文H’对应的第二设备标识,例如,得到智能设备的芯片ID。然后,再对所述第二设备标识进行验证,如果所述第二设备标识与所述第一设备标识相同,则根据所述运行参数对所述目标软件进行激活,例如,检查第二设备标识中的芯片ID是否与当前智能设备的芯片ID是否一致,若一致,则将所述运行参数复制到智能设备的内存中,供后续软件运行时使用,从而实现软件激活。
[0121] 在本实施例中,在软件激活前,进行智能设备的验证,当请求激活的智能设备与接收运行参数的智能设备一致时,才进行软件激活,以防止激活明文被非法复制使用,使得智能设备与软件激活一一对应。
[0122] 对于上述软件激活方法,智能设备发送的激活请求信息是进行加密后的信息,可以对智能设备和目标软件的相关信息进行保密。所述智能设备接收到的激活信息密文是采用预设对称加密算法进行加密的,保密性强,并且在加密的过程中引入初始向量随机数,使得每台设备得到的激活信息密文各不相同,无法被复制使用,从而,能够很好的保护软件生产商的权益。
[0123] 本发明其中一实施例提供了一种软件激活方法,所述软件激活方法应用于服务端,所述服务端可以为图1中所示的服务端,所述服务端和智能设备通信连接。所述智能设备配置有第一公钥和第一私钥,所述第一公钥基于所述第一私钥生成,所述服务端配置有第二公钥和第二私钥,所述第二公钥基于所述第二私钥生成,所述智能设备与所述服务端共享密钥生成参数,从而,所述智能设备和所述服务端能进行密钥通信。
[0124] 请参阅图7,所述方法S30包括但不限制于以下步骤:
[0125] S31:接收所述智能设备发送的激活请求信息。
[0126] 其中,所述激活请求信息包括第一标识密文和所述第一公钥,所述第一标识密文是原标识信息经第一加密处理后得到的密文,所述原标识信息包括所述智能设备的第一设备标识和目标软件的软件标识,所述目标软件为存储于所述智能设备中待激活的软件,所述激活请求信息用于获取激活所述目标软件的运行参数。
[0127] S32:提取所述激活请求信息中的所述第一标识密文,并根据所述第一标识密文和所述运行参数,生成激活信息明文。
[0128] S33:根据第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文。
[0129] 其中,所述第一公共密钥为根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥。
[0130] S34:将所述激活信息密文、所述第二公钥和所述预设对称加密算法的初始向量,发送至所述智能设备,以使所述智能设备根据所述初始向量和第二公共密钥解密所述激活信息密文,获得所述激活信息明文,用以对所述目标软件进行激活。
[0131] 其中,所述第二公共密钥与所述第一公共密钥相同,所述第二公共密钥为根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥。
[0132] 在本实施例中,为了保证激活信息在传输过程中的安全性,智能设备会生成第一公钥和第一私钥,其中,所述第一公钥基于所述第一私钥生成,服务端会生成第二公钥和第二私钥,所述第二公钥基于所述第二私钥生成,所述智能设备与所述服务端共享密钥生成参数,从而,使得所述智能设备和所述服务端可以进行密钥通信。
[0133] 具体的,所述智能设备将第一私钥保存,并将第一公钥上传至服务端,所述服务端利用所述第一公钥将需要返回至所述智能设备的激活信息进行加密,并将加密激活信息传输至智能设备,智能设备利用第一私钥对加密激活信息进行解密。可以理解的是,所述智能设备每发送一次激活请求信息以及所述服务端每发送一次加密激活信息,所述智能设备和所述服务端均会各自更新公钥和私钥,因此,每次进行信息传输时,第一公钥和第一私钥均不相同,以及,第二公钥和第二私钥也均不相同,可以有效避免由于某个智能设备或服务端的密钥泄露而导致所有智能设备和服务端存在安全风险的问题。
[0134] 在步骤S31中,所述服务端接收所述智能设备发送的激活请求信息。其中,所述激活请求信息包括第一标识密文和所述第一公钥,其中,所述第一标识密文是原标识信息经第一加密处理后得到的密文。从而,所述激活请求信息是经过加密后的信息,即使在网络中传输也不会泄露有关智能设备的任何信息。
[0135] 所述原标识信息包括所述智能设备的第一设备标识和目标软件的软件标识,所述目标软件为存储于所述智能设备中待激活的软件。例如,所述第一设备标识为智能设备的芯片ID,即用于确定智能设备身份的唯一识别码,所述软件标识为所述目标软件的UUID,即用于确定目标软件身份的唯一识别码。
[0136] 所述激活请求信息用于获取激活所述目标软件的运行参数,也即,为使所述目标软件激活,能够正常运行,所述激活请求信息会告知服务端所述目标软件所需的运行参数,从而,服务端会根据所述激活请求信息,确定相应的运行参数,以反馈给所述智能设备。可以理解的是,所述服务端中预先存储有目标软件和运行参数的对应关系,服务端可根据所述激活信息,确定目标软件的UUID,从而,确定目标软件对应的运行参数。
[0137] 在所述步骤S32中,所述服务端在接收到所述激活请求信息后,提取所述激活请求信息中的所述第一标识密文,并根据所述第一标识密文和所述运行参数,生成激活信息明文。例如,所述激活请求信息中包括第一标识密文H和所述第一公钥kd,所述服务端从所述激活请求信息中提取出所述第一标识密文H,然后根据所述第一标识密文H,在预先存储的目标软件和运行参数之间的对应关系中查找出相应的运行参数P。然后,根据所述第一标识密文H和所述运行参数P,生成激活信息明文。
[0138] 在所述步骤S33中,所述服务端根据第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文,不会造成激活信息泄露。其中,所述预设对称加密算法也称为采用单钥密码的加密方法,即同一个密钥可以同时用来加密和解密。例如,所述智能设备和所述服务端可采用对称加密算法AES256,以第一公共密钥对所述激活信息明文进行加密,以第二公共密钥对所述激活信息密文进行解密,第一公共密钥和第二公共密钥相同。由于对称加密算法是通过移位等手段进行加密,加密过程简单,加解密的效率高。
[0139] 并且,所述第一公共密钥为根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥。例如,所述服务端采用第一公共密钥S1和对称加密算法AES256,对所述激活信息明文进行第二加密处理,而其中,第一公共密钥S1是所述第一公钥kd和第二私钥r通过预设的密钥协商算法生成的。其中,密钥协商算法又称为密钥交换算法,例如,可以是ECDH算法。从而,实现所述智能设备和所述服务端双方在不共享任何秘密的情况下协商出一个共同的密钥。
[0140] 在步骤S34中,所述服务端将所述激活信息密文、所述第二公钥和所述预设对称加密算法的初始向量,发送至所述智能设备,以使所述智能设备根据所述初始向量和第二公共密钥解密所述激活信息密文,获得所述激活信息明文,用以对所述目标软件进行激活。
[0141] 所述智能设备根据所述初始向量和第二公共密钥,对所述激活信息密文进行解密,即可得到所述激活信息明文。其中,所述第二公共密钥与所述第一公共密钥相同,所述第二公共密钥是所述智能设备根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥。并且,所述第二公共密钥与所述第一公共密钥相同,使得所述第二公共密钥可以对所述激活信息密文进行解密,同时,以满足对称加密算法的特征,使得方案具有对称加密算法的优点,即计算量小、加密速度快、加密效率高。
[0142] 在本实施例中,服务端接收到的激活请求信息是进行加密后的信息,可以对智能设备和目标软件的相关信息进行保密。服务端根据所述激活请求信息,生成激活信息明文,然后,采用预设对称加密算法对所述激活信息明文进行加密,并在加密的过程中引入初始向量随机数,使得每台智能设备得到的激活信息密文各不相同,无法被复制使用,从而,能够很好的保护软件生产商的权益。
[0143] 在一些实施例中,请参阅图8,所述步骤S32具体包括:
[0144] S321:根据所述第一标识密文,确定所述运行参数,所述运行参数用于使所述目标软件激活。
[0145] S322:将所述第一标识密文与所述运行参数拼接,以生成所述激活信息明文。
[0146] 可以理解的是,所述服务端中预先存储有目标软件和运行参数的对应关系,服务端可根据所述第一标识密文,确定目标软件的UUID,从而,确定目标软件对应的运行参数。例如,所述服务端将所述第一标识密文H和所述运行参数P拼接生成激活信息明文M,即M=H||P。从而,使得所述激活信息明文包括所述第一标识密文H和所述运行参数P。
[0147] 在本实施例中,激活信息明文包括第一标识密文和所述运行参数,所述激活信息明文能反映所述智能设备的设备标识和目标软件的软件标识,从而,有利于后续所述智能设备进行解密激活时,进行校对,一方面,确保所述运行参数与所述智能设备匹配,另一方面,可通过设备标识和软件标识确保所述运行参数与智能设备和目标软件是一一对应的。
[0148] 在一些实施例中,请参阅图9,所述步骤S33具体包括:
[0149] S331:根据所述第一公共密钥和所述初始向量,生成所述对称加密算法的加密密钥链,其中,所述初始向量为随机数。
[0150] S332:将所述激活信息明文和所述加密密钥链进行异或运算,以获取所述激活信息密文。
[0151] 例如,若所述第一公共密钥S1为第二私钥r和第一公钥kd的乘积,则可以根据所述第一公共密钥S1的横坐标XS1和所述初始向量IV生成所述加密密钥链。即,在加密过程中引入初始向量随机数,获取能够加密激活信息明文的加密密钥链。
[0152] 在本实施例中,通过所述第一公共密钥和所述初始向量,即可对所述激活信息明文进行加密,通过初始向量,在生成加密密钥链的过程中引入随机数,使得所述服务端每次生成的加密密钥链都不相同,从而,可以增加激活信息密文的保密性,以防止受到字典攻击。
[0153] 在一些实施例中,所述激活请求信息中还包括目标用户标识,所述目标用户标识为所述智能设备的用户标识,即每台智能设备中均关联有对应的用户标识信息,例如出货给甲公司的智能设备中,均关联有甲公司的标识信息。对应的,服务端收到的激活请求信息中包括目标用户标识。可以理解的是,所述用户标识可以设置于所述智能设备中,也可以通过前端网页登陆上传,例如,通过连接终端登陆所述服务端,则登陆用户名即为所述用户标识。
[0154] 可以理解的是,所述用户可以是个人用户,也可以是企业用户,用户标识可以是用户名称、用户ID或者其他用于唯一标识用户身份的信息,在此不做任何限定。
[0155] 具体的,请参阅图10,在所述步骤S32之前还包括以下步骤:
[0156] S35:根据所述第一标识密文,确定所述智能设备的第一设备标识。
[0157] S36:根据所述目标用户标识和预先存储的用户配置信息,确定所述目标用户标识对应的剩余激活次数。
[0158] S37:如果所述剩余激活次数大于或等于1,则执行根据所述第一标识密文,生成激活信息明文的步骤,并记录所述第一设备标识,更新所述剩余激活次数。
[0159] 基于该激活请求信息,服务端可获取所述第一标识密文和所述目标用户标识。可以理解的是,从所述第一标识密文中即可获取所述智能设备的第一设备标识。
[0160] 对于所述目标用户标识,结合所述预先存储的用户配置信息,确定所述目标用户标识对应的剩余激活次数。其中,所述用户配置信息包括用户与激活信息的映射关系,例如,甲公司的A设备已用激活50次,剩余激活30次,乙公司的B设备已用激活30次,剩余激活10次等。
[0161] 从而,基于所述目标用户标识,所述服务端查询所述用户配置信息,找出与所述目标用户标识对应的用户配置信息,确定其对应的剩余激活次数,若所述剩余激活次数大于或等于1,则执行所述步骤S32,用以激活所述智能设备中的目标软件,并记录所述第一设备标识,更新所述剩余激活次数,例如,对于甲公司的A设备,每激活一次,则对应的剩余激活次数减1。
[0162] 若所述剩余激活次数小于1,则无法执行所述步骤S32,所述目标软件激活失败,所述服务端可向所述智能设备返回激活失败的消息或空信息,用以提示用户充值购买更多的激活数量。
[0163] 在本实施例中,通过更新目标用户标识对应的剩余激活次数,并根据所述剩余激活次数,控制软件激活的数量,能有效防止非授权使用。
[0164] 在一些实施例中,所述第二私钥为随机数,请参阅图11,在所述步骤S33之前还包括:
[0165] S38:根据所述第二私钥并结合所述密钥生成参数,生成所述第二公钥。
[0166] 其中,所述密钥生成参数为密钥生成算法中的参数。在一些实施例中,所述密钥生成参数为椭圆曲线密码学(Elliptic Curve Cryptography,ECC)中的椭圆曲线参数,即椭圆曲线上的基点G,所述智能设备和所述服务端的基点G相同,则所述第二公钥ks=r*G,其中,r为第二私钥。可以理解的是,所述基点G可以是根据大量的实验结果确定的,也可以根据现有的标准基点表而设定。由于所述第二私钥为随机数,则所述第二公钥也具有随机性,也即,每次加密过程中生成的第二私钥和第二公钥均不相同,第二私钥和第二公钥为一次性密钥,即使某一第二私钥发生泄露,窃取者也不会获取到服务端的全部激活信息,从而,能够有效增加保密性。
[0167] 在本实施例中,基于所述第二私钥为随机数,并通过密钥生成参数,生成所述第二公钥,从而,能够有效增加保密性。
[0168] 请参阅图12,所述软件激活方法涉及到的交互流程具体如下:
[0169] S41:所述智能设备生成激活请求信息,并向所述服务端发送所述激活请求信息。
[0170] 其中,所述激活请求信息包括第一标识密文和所述第一公钥,所述第一标识密文是原标识信息经第一加密处理后得到的密文。从而,所述激活请求信息是经过加密后的信息,即使在网络中传输也不会泄露有关智能设备的任何信息。
[0171] 所述原标识信息包括所述智能设备的第一设备标识和目标软件的软件标识,所述目标软件为存储于所述智能设备中待激活的软件。例如,所述第一设备标识为智能设备的芯片ID,即用于确定智能设备身份的唯一识别码,所述软件标识为所述目标软件的UUID,即用于确定目标软件身份的唯一识别码。
[0172] 所述激活请求信息用于获取激活所述目标软件的运行参数,也即,为使所述目标软件激活,能够正常运行,所述激活请求信息会告知服务端所述目标软件所需的运行参数,从而,服务端会根据所述激活请求信息,确定相应的运行参数,以反馈给所述智能设备。可以理解的是,所述服务端中预先存储有目标软件和运行参数的对应关系,服务端可根据所述激活信息,确定目标软件的UUID,从而,确定目标软件对应的运行参数。
[0173] S42:所述服务端接收所述智能设备发送的激活请求信息。
[0174] S43:所述服务端提取所述激活请求信息中的所述第一标识密文,并根据所述第一标识密文和所述运行参数,生成激活信息明文。
[0175] 所述服务端在接收到所述激活请求信息后,提取所述激活请求信息中的所述第一标识密文,并根据所述第一标识密文和所述运行参数,生成激活信息明文。例如,所述激活请求信息中包括第一标识密文H和所述第一公钥kd,所述服务端从所述激活请求信息中提取出所述第一标识密文H,然后根据所述第一标识密文H,在预先存储的目标软件和运行参数之间的对应关系中查找出相应的运行参数P。然后,根据所述第一标识密文H和所述运行参数P,生成激活信息明文。
[0176] S44:所述服务端根据第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文。
[0177] 其中,所述第一公共密钥为根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥。
[0178] 所述服务端根据第一公共密钥和预设对称加密算法,对所述激活信息明文进行第二加密处理,以生成激活信息密文,不会造成激活信息泄露。其中,所述预设对称加密算法也称为采用单钥密码的加密方法,即同一个密钥可以同时用来加密和解密。例如,所述智能设备和所述服务端可采用对称加密算法AES256,以第一公共密钥对所述激活信息明文进行加密,以第二公共密钥对所述激活信息密文进行解密,第一公共密钥和第二公共密钥相同。由于对称加密算法是通过移位等手段进行加密,加密过程简单,加解密的效率高。
[0179] 并且,所述第一公共密钥为根据所述第一公钥和所述第二私钥采用预设的密钥协商算法生成的密钥。例如,所述服务端采用第一公共密钥S1和对称加密算法AES256,对所述激活信息明文进行第二加密处理,而其中,第一公共密钥S1是所述第一公钥kd和第二私钥r通过预设的密钥协商算法生成的。其中,密钥协商算法又称为密钥交换算法,例如,可以是ECDH算法。从而,实现所述智能设备和所述服务端双方在不共享任何秘密的情况下协商出一个共同的密钥。
[0180] S45:所述服务端将所述激活信息密文、所述第二公钥和所述预设对称加密算法的初始向量,发送至所述智能设备。
[0181] S46:所述智能设备接收所述服务端发送的激活信息密文、所述第二公钥和预设对称加密算法的初始向量。
[0182] S47:所述智能设备根据所述初始向量和第二公共密钥,对所述激活信息密文进行解密,以获得所述激活信息明文。
[0183] 其中,所述第二公共密钥为根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥,并且,所述第二公共密钥与所述第一公共密钥相同。
[0184] S48:所述智能设备根据所述激活信息明文,对所述目标软件进行激活。
[0185] 所述智能设备根据所述初始向量和第二公共密钥,对所述激活信息密文进行解密,即可得到所述激活信息明文。其中,所述第二公共密钥是所述智能设备根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的密钥,并且,所述第二公共密钥与所述第一公共密钥相同,使得所述第二公共密钥可以对所述激活信息密文进行解密,同时,以满足对称加密算法的特征,使得方案具有对称加密算法的优点,即计算量小、加密速度快、加密效率高。
[0186] 所述智能设备根据所述激活信息明文,对所述目标软件进行激活。也即,将所述激活信息明文中的运行参数存储于内存中,以供所述目标软件使用,从而,使得所述目标软件能正常运行。
[0187] 在本实施例中,智能设备发送的激活请求信息是进行加密后的信息,可以对智能设备和目标软件的相关信息进行保密。服务端根据所述激活请求信息,生成激活信息明文,然后,采用预设对称加密算法对所述激活信息明文进行加密,并在加密的过程中引入初始向量随机数,使得每台智能设备得到的激活信息密文各不相同,无法被复制使用,从而,能够很好的保护软件生产商的权益。
[0188] 基于与上述实施例中的软件激活方法相同的思想,本发明其中一实施例还提供了一种暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行,例如,执行以上描述的图3‑图12中的方法。
[0189] 需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0190] 通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read‑Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0191] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。