专利名称:口令认证和密钥保护的方法
技术领域:
本发明涉及信息安全领域,具体而言,涉及一种口令认证和密钥保护的方法。
背景技术:
目前在口令及密钥的保护中,大多采用具有较强的抗攻击及抗分析能力的安全芯片来存储口令及密钥,其内部存储内容不能被读出或破解,口令认证过程及数据加解密过程在安全芯片内进行,口令及密钥的安全性取决于其所采用的安全芯片的安全性。然而,一旦安全芯片被攻破,其内部存储的口令和密钥将存在泄漏的风险,从而为数据安全带来隐患。
发明内容
本发明提供一种口令认证和密钥保护的方法,用以达到口令及密钥的安全性不依赖于其所处于的存储载体是否安全的效果。为达到上述目的,本发明提供了一种口令认证和密钥保护的方法,其包括以下步骤步骤a 采用摘要算法对用户口令进行摘要计算,得到固定长度的第一摘要值;步骤b 采用摘要算法对第一摘要值进行摘要计算,得到固定长度的第二摘要值;步骤c 存储第二摘要值;步骤d 从第一摘要值中取出设定长度的数据作为第一保护密钥,并根据第一保护密钥采用对称密码算法对工作密钥进行加密计算,得到工作密钥密文并将其存储。较佳的,设定长度的数据按照设定规则从第一摘要值中选取。较佳的,上述还包括以下步骤步骤e 通过摘要算法对用户输入的口令进行摘要计算,得到固定长度的第一验证摘要值;步骤f:采用摘要算法对第一验证摘要值进行摘要计算,得到固定长度的第二验证摘要值;步骤g 将第二验证摘要值与第二摘要值进行对比,若二者一致,则用户口令校验成功,身份认证通过,执行步骤h ;否则,提示用户口令校验失败,身份认证未通过;步骤h 从第一验证摘要值中取出固定长度的数据作为第二保护密钥;步骤i 根据第二保护密钥,采用对称密码算法对步骤d中存储的工作密钥密文进行解密计算,得到工作密钥的明文。较佳的,上述设定长度的数据按照设定规则从第一验证摘要值中选取。较佳的,上述方法还包括以下步骤步骤1 采用摘要算法对用户输入的口令进行摘要计算,得到固定长度的第一验证摘要值;步骤m:采用摘要算法对第一验证摘要值进行摘要计算,得到固定长度的第二验证摘要值;步骤η:将第二验证摘要值与第二摘要值进行对比,若二者一致,则用户口令校验成功,身份认证通过,执行步骤ο ;否则,提示用户口令校验失败,身份认证未通过;步骤ο 从第一验证摘要值中取出设定长度的数据作为第二保护密钥;步骤ρ 根据第二保护密钥,采用对称密码算法对步骤d中存储的工作密钥密文进行解密计算,得到工作密钥的明文;步骤q 获取新的用户口令,执行步骤a。较佳的,上述设定长度的数据按照设定规则从第一验证摘要值中选取。较佳的,上述对称密码算法为以下任一种3DES算法、Blowfish算法、RC5算法和AES算法。在上述实施例中,工作密钥即是要保护的对象,用于对其它要保护的数据进行加解密。从本实施例可以看出,对口令及工作密钥的存储,所存储的是口令经两次摘要算法计算后的摘要值和工作密钥经加密后的密文,口令原文、工作密钥明文、保护密钥均不存储, 由于摘要算法不可以从消息摘要中复原信息,即使攻击者获取存储的工作密钥密文,其也无法将工作密钥密文解密得到工作密钥明文,而攻击者同样无法从所存储的第二次摘要算法计算后的口令摘要值倒推获得第一次摘要算法计算后的口令摘要值(即包含保护密钥的信息),提高了安全芯片的安全性,克服了现有技术中安全芯片被攻破,其内部存储的口令和密钥将存在泄漏的风险的问题。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为根据本发明一个实施例的口令及密钥存储流程示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为根据本发明一个实施例的口令及密钥存储流程示意图,如图1所示,其包括以下步骤步骤a 采用摘要算法对用户口令进行摘要计算,得到固定长度的第一摘要值;步骤b 采用摘要算法对第一摘要值进行摘要计算,得到固定长度的第二摘要值;步骤c 存储第二摘要值;步骤d 从第一摘要值中取出设定长度的数据作为第一保护密钥,并根据第一保护密钥采用对称密码算法对工作密钥进行加密计算,得到工作密钥密文并将其存储。在本实施例中,工作密钥即是要保护的对象,用于对其它要保护的数据进行加解密。从本实施例可以看出,对口令及工作密钥的存储,所存储的是口令经两次摘要算法计算后的摘要值和工作密钥经加密后的密文,口令原文、工作密钥明文、保护密钥均不存储,由于摘要算法不可以从消息摘要中复原信息,即使攻击者获取存储的工作密钥密文,其也无法将工作密钥密文解密得到工作密钥明文,而攻击者同样无法从所存储的第二次摘要算法计算后的口令摘要值倒推获得第一次摘要算法计算后的口令摘要值(即包含保护密钥的信息),提高了安全芯片的安全性,克服了现有技术中安全芯片被攻破,其内部存储的口令和密钥将存在泄漏的风险的问题。例如,上述设定长度的数据可以按照设定规则从第一摘要值中选取。在口令校验过程中,上述方法还包括以下步骤步骤e 通过摘要算法对用户输入的口令进行摘要计算,得到固定长度的第一验证摘要值;步骤f:采用摘要算法对第一验证摘要值进行摘要计算,得到固定长度的第二验证摘要值;步骤g 将第二验证摘要值与第二摘要值进行对比,若二者一致,则用户口令校验成功,身份认证通过,执行步骤h ;否则,提示用户口令校验失败,身份认证未通过;步骤h 从第一验证摘要值中取出固定长度的数据作为第二保护密钥;步骤i 根据第二保护密钥,采用对称密码算法对步骤d中存储的工作密钥密文进行解密计算,得到工作密钥的明文。以上步骤完成口令的校验,可以看出,所校验的是口令经两次摘要算法计算后的摘要值,且只有在用户口令校验成功的情况下,才由用户口令第一次经摘要算法计算后得到的摘要值中获取保护密钥,从而计算出工作密钥的明文,否则无法获得工作密钥明文。例如,在口令验证流程中,设定长度的数据按照与步骤d中相同的设定规则从第一验证摘要值中选取。根据用户的需要,上述口令更新,还包括以下步骤步骤1 采用摘要算法对用户输入的口令进行摘要计算,得到固定长度的第一验证摘要值;步骤m:采用摘要算法对第一验证摘要值进行摘要计算,得到固定长度的第二验证摘要值;步骤η:将第二验证摘要值与第二摘要值进行对比,若二者一致,则用户口令校验成功,身份认证通过,执行步骤ο ;否则,提示用户口令校验失败,身份认证未通过;步骤ο 从第一验证摘要值中取出设定长度的数据作为第二保护密钥;步骤ρ 根据第二保护密钥,采用对称密码算法对步骤d中存储的工作密钥密文进行解密计算,得到工作密钥的明文;步骤q 获取新的用户口令,执行步骤a。以上步骤完成口令的更新,可以看出,先需要完成口令的校验,待口令校验成功后获取工作密钥明文,再重新存储新的口令摘要值,并采用新的保护密钥对工作密钥明文进行加密,再将加密后的工作密钥密文存储起来,口令的更新并不会导致工作密钥的更新。从上述实施例中可以看出,本发明的有益效果在于第一,将口令经过两次摘要算法(或杂凑算法、散列算法、哈西算法)计算后得到
5的摘要值作为口令存储的对象。由于摘要算法具有如下两个特性不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。因此可以使用口令摘要值替代口令原文进行存储,即使攻击者获取存储的口令摘要值,也无法从口令摘要值倒推获得口令原文。第二,采用一个保护密钥对所要保护的工作密钥采用对称密码算法(例如3DES或 AES算法)进行加密计算,将计算后得到的工作密钥密文存储起来,将口令、第一次摘要算法计算后的口令摘要值、以及工作密钥明文均不存储,其中的保护密钥来自于第一次摘要算法计算后得到的口令摘要值(可以是该口令摘要值的部分内容)。由于保护密钥不存储, 即使攻击者获取存储的工作密钥密文,也无法将工作密钥密文解密得到工作密钥明文,而攻击者同样无法从所存储的第二次摘要算法计算后的口令摘要值倒推获得第一次摘要算法计算后的口令摘要值(即包含保护密钥的信息)。第三,在校验用户口令时,并不校验用户口令的原文,校验的是经过两次摘要算法计算后得到的口令摘要值,且只有在用户口令校验成功的情况下,才由用户口令第一次经摘要算法计算后得到的摘要值中获取保护密钥,从而计算出工作密钥的明文,否则无法获得工作密钥明文。因此通过以上的方法,确保了口令和工作密钥的安全性。本领域普通技术人员可以理解附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域普通技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换; 而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
权利要求
1.一种口令认证和密钥保护的方法,其特征在于,包括以下步骤步骤a 采用摘要算法对用户口令进行摘要计算,得到固定长度的第一摘要值; 步骤b 采用所述摘要算法对所述第一摘要值进行摘要计算,得到固定长度的第二摘要值;步骤c 存储所述第二摘要值;步骤d 从所述第一摘要值中取出设定长度的数据作为第一保护密钥,并根据所述第一保护密钥采用对称密码算法对工作密钥进行加密计算,得到工作密钥密文并将其存储。
2.根据权利要求1所述的方法,其特征在于,所述设定长度的数据按照设定规则从所述第一摘要值中选取。
3.根据权利要求1所述的方法,其特征在于,还包括以下步骤步骤e:通过所述摘要算法对用户输入的口令进行摘要计算,得到固定长度的第一验证摘要值;步骤f 采用所述摘要算法对所述第一验证摘要值进行摘要计算,得到固定长度的第二验证摘要值;步骤g 将所述第二验证摘要值与所述第二摘要值进行对比,若二者一致,则用户口令校验成功,身份认证通过,执行步骤h ;否则,提示用户口令校验失败,身份认证未通过; 步骤h 从所述第一验证摘要值中取出固定长度的数据作为第二保护密钥; 步骤i 根据所述第二保护密钥,采用所述对称密码算法对步骤d中存储的所述工作密钥密文进行解密计算,得到工作密钥的明文。
4.根据权利要求3所述的方法,其特征在于,所述设定长度的数据按照所述设定规则从所述第一验证摘要值中选取。
5.根据权利要求1所述的方法,其特征在于,还包括以下步骤步骤1 采用所述摘要算法对用户输入的口令进行摘要计算,得到固定长度的第一验证摘要值;步骤m 采用所述摘要算法对所述第一验证摘要值进行摘要计算,得到固定长度的第二验证摘要值;步骤η 将所述第二验证摘要值与所述第二摘要值进行对比,若二者一致,则用户口令校验成功,身份认证通过,执行步骤ο ;否则,提示用户口令校验失败,身份认证未通过; 步骤ο 从所述第一验证摘要值中取出所述设定长度的数据作为第二保护密钥; 步骤P 根据所述第二保护密钥,采用所述对称密码算法对步骤d中存储的所述工作密钥密文进行解密计算,得到工作密钥的明文; 步骤q 获取新的用户口令,执行步骤a。
6.根据权利要求5所述的方法,其特征在于,所述设定长度的数据按照所述设定规则从所述第一验证摘要值中选取。
7.根据权利要求1、3和5中任一项所述的方法,其特征在于,所述对称密码算法为以下任一种3DES算法、Blowfish算法、RC5算法和AES算法。
全文摘要
本发明公开了一种口令认证和密钥保护的方法,其包括以下步骤步骤a采用摘要算法对用户口令进行摘要计算,得到固定长度的第一摘要值;步骤b采用摘要算法对第一摘要值进行摘要计算,得到固定长度的第二摘要值;步骤c存储第二摘要值;步骤d从第一摘要值中取出设定长度的数据作为第一保护密钥,并根据第一保护密钥采用对称密码算法对工作密钥进行加密计算,得到工作密钥密文并将其存储。本发明达到了口令及密钥的安全性不依赖于其所处于的存储载体是否安全的效果。
文档编号H04L9/32GK102480353SQ20101056975
公开日2012年5月30日 申请日期2010年11月26日 优先权日2010年11月26日
发明者周强, 孟凡涛, 张卉, 张晓佳, 柳鹏, 赵伟, 赵欣, 陈懿, 高志刚 申请人:航天信息股份有限公司