本发明涉及信息安全领域,具体来说,涉及一种私钥的生成方法及装置。
背景技术:
1976年美国斯坦福大学的两名学者迪菲和赫尔曼提出了公开密钥密码体制的概念。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然秘密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。
在公开密钥密码体制中,如何保护私钥不会泄露是至关重要的任务,目前普遍采用的是将私钥存储在硬件物理设备中,然后使用硬件电路保护,避免私钥泄露出来。这种方式能够很好的保护私钥,但对如今的大多数移动设备来说,使用起来极其不便。
针对相关技术中的问题,目前尚未提出有效的解决方案。
技术实现要素:
针对相关技术中的问题,本发明提出一种私钥的生成方法及装置,能够避免将私钥保存在密码运算设备中,从而提高了算法安全性,并且更好的满足了移动设备的需求。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种私钥的生成方法。
该私钥的生成方法包括:
接收用户的用户口令;
采集用户的设备信息;
根据用户口令对设备信息进行抽取,得到设备关键信息;
利用预定算法对用户口令和设备关键信息进行处理,生成用户的私钥。
在本发明的一个优选的实施例中,在对设备信息进行抽取之前,对用户口令作变形处理,得到用户变形口令。
在本发明的一个优选的实施例中,对用户变形口令进行关键信息的抽取,得到用户口令关键信息;
其中,根据用户口令对设备信息进行抽取,得到设备关键信息包括:
根据用户口令关键信息对设备信息进行抽取,得到设备关键信息。
在本发明的一个优选的实施例中,在根据用户口令对设备信息进行抽取之前,对设备信息作变形处理,得到设备变形信息;
根据用户口令对设备信息进行抽取,得到设备关键信息包括:
根据用户口令对设备变形信息进行抽取,得到设备关键信息。
在本发明的一个优选的实施例中,在对设备信息作变形处理之前,对采集的设备信息进行组织,得到组织后的设备信息;
对组织后的该设备信息作变形处理,得到设备变形信息。
在本发明的一个优选的实施例中,预定算法至少包括:杂凑算法、HMAC算法。
在本发明的一个优选的实施例中,在预定算法为HMAC算法的情况下,进一步包括:
利用杂凑算法对用户变形口令和设备变形信息进行计算,得到用户的设备标识符;
利用HMAC算法对设备标识符和对应该设备标识符的随机数进行计算,得到用户的私钥。
在本发明的一个优选的实施例中,私钥的生成方法进一步包括:
将设备标识符发送至目标服务器,检测是否存在对应该设备标识符的随机数;
在存在的情况下,将随机数发送至用户以进行计算,得到用户的私钥;
在不存在的情况下,生成对应该设备标识符的随机数并发送至用户以进行计算,得到用户的私钥。
在本发明的一个优选的实施例中,私钥的生成方法进一步包括:
利用杂凑算法对生成的用户的私钥进行计算,得到计算结果;
将计算结果与预先存储在用户的用户设备中的本地结果进行对比,根据对比结果对用户口令进行验证;
其中,在对比结果为相同的情况下,表示用户口令正确;
在对比结构为不同的情况下,表示用户口令错误,重新接收用户的用户口令。
在本发明的一个优选的实施例中,私钥的生成方法进一步包括:
利用用户的私钥进行签名和/或验证。
根据本发明的另一方面,提供了一种私钥的生成装置。
该私钥的生成装置包括:
接收模块,用于接收用户的用户口令;
采集模块,用于采集用户的设备信息;
抽取模块,用于根据用户口令对设备信息进行抽取,得到设备关键信息;
处理模块,用于利用预定算法对用户口令和设备关键信息进行处理,生成用户的私钥。
本发明通过利用设备信息和用户口令生成私钥,从而大大提高了私钥的安全性和可靠性以及灵活性,更好的满足了移动设备的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的私钥的生成方法的流程图;
图2是根据本发明的私钥的生成方法的具体实施例的流程图;
图3是根据本发明的私钥的生成方法的具体实施例的流程图;
图4是根据本发明的私钥的生成方法的具体实施例的流程图;
图5是根据本发明实施例的私钥的生成装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了
如图1所示,根据本发明实施例的私钥的生成方法包括:
步骤S101,接收用户的用户口令;
步骤S103,采集用户的设备信息;
步骤S105,根据用户口令对设备信息进行抽取,得到设备关键信息;
步骤S107,利用预定算法对用户口令和设备关键信息进行处理,生成用户的私钥;
通过本发明的上述方案,能够为私钥提供更好的安全保护的同时满足移动设备的需求,大大提高了私钥的安全性、可靠性以及灵活性。
本发明提供了私钥的生成方法的多个实施例,下面参照本发明的多个附图进行详细的阐述。在本发明的多个实施例中,优选的,将非对称算法(SM2)、杂凑算法(SM3)以及HMAC算法(HMAC-SM3)以及其他必要的算法集成于一个相对封闭的环境中,用以实现本发明的私钥生成方法。
图2表示根据本发明的私钥的生成方法的一个实施例。在图2中:
步骤S201:接收用户的用户口令PWD。在本实施例中,用户口令PWD可以为用户输入的口令,也可以为通过其他方式输入的口令,例如:扫描二维码输入的信息。
步骤S203:对用户口令PWD做变形处理,获得用户变形口令M_PWD。在本实施例中,用户口令的变形方式可以为:M_PWD=SM3(PWD)。
步骤S205:采集用户的设备信息DeviceInfo。在本实施例中,用户的设备信息可以为CPUID、主板信息等设备信息。
步骤S207:对设备信息DeviceInfo进行组织,获取组织后的设备信息。在本实施例中,对设备的组织方式可以为:将设备信息组织为字符串。
步骤S209:对组织后的设备信息作变形处理,得到设备变形信息DI。在本实施例中,设备信息的变形方式可以为:DI=SM3(DeviceInfo)。
步骤S211:对用户变形口令M_PWD进行关键信息的抽取,得到用户口令关键信息。在本实施例中,对用户变形口令的关键信息抽取可以是抽取部分信息,也可以是抽取全部信息。抽取后的关键信息为:M_PWD[0]&32,M_PWD[2]&32……M_PWD[30]&32。
步骤S213:对设备变形信息DI进行抽取,得到设备关键信息XDI。在本实施例中,抽取后的设备关键信息为:DI[M_PWD[0]&32],DI[M_PWD[2]&32]……DI[M_PWD[30]&32]。
步骤S215:使用预定算法对用户口令和设备关键信息进行处理,生成用户的私钥d。在本实施例中,预定算法至少包括:杂凑算法、HMAC算法。以及,生成方式可以为:d=SM3(XDI,M_PWD)。
步骤S217:利用用户的私钥d进行签名和/或验证。
图3表示根据本发明的私钥的生成方法的另一个实施例,在本实施例中,对私钥在解密时的作用进行了详细阐述。在图3中:
步骤S301:接收用户的用户口令PWD。在本实施例中,用户口令PWD可以为用户输入的口令,也可以为通过其他方式输入的口令,例如:扫描二维码输入的信息。
步骤S303:对用户口令PWD做变形处理,获得用户变形口令M_PWD。在本实施例中,用户口令的变形方式可以为:M_PWD=SM3(PWD)。
步骤S305:采集用户的设备信息DeviceInfo。在本实施例中,用户的设备信息可以为CPUID、主板信息等设备信息。
步骤S307:对设备信息DeviceInfo进行组织,获取组织后的设备信息。在本实施例中,对设备的组织方式可以为:将设备信息组织为字符串。
步骤S309:对组织后的设备信息作变形处理,得到设备变形信息DI。在本实施例中,设备信息的变形方式可以为:DI=SM3(DeviceInfo)。
步骤S311:对用户变形口令M_PWD进行关键信息的抽取,得到用户口令关键信息。在本实施例中,对用户变形口令的关键信息抽取可以是抽取部分信息,也可以是抽取全部信息。抽取后的关键信息为:M_PWD[0]&32,M_PWD[2]&32……M_PWD[30]&32。
步骤S313:对设备变形信息DI进行抽取,得到设备关键信息XDI。在本实施例中,抽取后的设备关键信息为:DI[M_PWD[0]&32],DI[M_PWD[2]&32]……DI[M_PWD[30]&32]。
步骤S315:使用预定算法对用户口令和设备关键信息进行处理,生成用户的私钥d。在本实施例中,预定算法至少包括:杂凑算法、HMAC算法。以及,生成方式可以为:d=SM3(XDI,M_PWD)。
步骤S317:私钥验证。具体的,在本实施例中,利用杂凑算法对生成的用户的私钥进行计算,得到计算结果d_verify’,具体生成方法为:d_verify’=SM3(d);将计算结果与预先存储在用户的用户设备中的本地结果d_verify进行对比,根据对比结果对用户口令进行验证;其中,在对比结果为相同的情况下,表示用户口令正确;在对比结构为不同的情况下,表示用户口令错误,重新接收用户的用户口令。
步骤S319:使用私钥d对数据进行解密。
图4表示根据本发明的私钥的生成方法的另一个实施例,在本实施例中引入了随机因子。在图4中:
步骤S401:接收用户的用户口令PWD。在本实施例中,用户口令可以为用户输入的口令,也可以为通过其他方式输入的口令,例如:扫描二维码输入的信息。
步骤S403:对用户口令PWD做变形处理,获得用户变形口令M_PWD。在本实施例中,用户口令的变形方式可以为:M_PWD=SM3(PWD)。
步骤S405:采集用户的设备信息DeviceInfo。在本实施例中,用户的设备信息可以为CPUID、主板信息等设备信息。
步骤S407:对设备信息DeviceInfo进行组织,获取组织后的设备信息。在本实施例中,对设备的组织方式可以为:将设备信息组织为字符串。
步骤S409:对组织后的设备信息作变形处理,得到设备变形信息DI。在本实施例中,设备信息的变形方式可以为:DI=SM3(DeviceInfo)。
步骤S411:对用户变形口令M_PWD进行关键信息的抽取,得到用户口令关键信息。在本实施例中,对用户变形口令的关键信息抽取可以是抽取部分信息,也可以是抽取全部信息。抽取后的关键信息为:M_PWD[0]&32,M_PWD[2]&32……M_PWD[30]&32。
步骤S413:对设备变形信息DI进行抽取,得到设备关键信息XDI。在本实施例中,抽取后的设备关键信息为:DI[M_PWD[0]&32],DI[M_PWD[2]&32]……DI[M_PWD[30]&32]。
步骤S415:利用杂凑算法对用户变形口令和设备变形信息进行计算,得到用户的设备标识符device_ID。在本实施例中,具体计算方法为:device_ID=SM3(SM3(SM3(DI)||M_PWD))。优选的,在计算device_ID时,先产生一定长度(如64字节)的随机数Personal_ID存放在设备中,,然后再根据公式:device_ID=SM3(SM3(DI||Personal_ID)||M_PWD),计算出device_ID。
步骤S417:将设备标识符device_ID发送至目标服务器,检测是否存在对应该设备标识符device_ID的随机数SVR_RAND。在本实施例中,在存在的情况下,将随机数SVR_RAND发送至用户以进行计算,得到用户的私钥;在不存在的情况下,生成对应该设备标识符的随机数SVR_RAND,并发送至用户以进行计算,得到用户的私钥。在一个优选的实施例中,可以通过HTTPS等安全传输方式将设备标识符发送至目标服务器。
步骤S419:利用HMAC算法对所述设备标识符device_ID和对应该设备标识符的随机数SVR_RAND进行计算,得到所述用户的私钥d。在本实施例中,具体计算方式为:
d=HMAC-SM3(HMAC-SM3(XDI,SVR_RAND),M_PWD)。
根据本发明的实施例,还提供了一种私钥的生成装置。
如图5所示,根据本发明实施例的私钥的生成装置包括:
接收模块51,该模块用于接收用户的用户口令;
采集模块52,该模块用于采集用户的设备信息;
抽取模块53,该模块用于根据用户口令对设备信息进行抽取,得到设备关键信息;
处理模块54,该模块用于利用预定算法对用户口令和设备关键信息进行处理,生成用户的私钥。
综上所述,借助于本发明的上述技术方案,通过利用设备信息和用户口令生成私钥,从而大大提高了私钥的安全性和可靠性以及灵活性,更好的满足了移动设备的需求。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。