基于SM2算法实现三因素匿名身份认证的方法技术

技术编号:30326760 阅读:54 留言:0更新日期:2021-10-10 00:12
本发明专利技术涉及一种基于SM2算法实现三因素匿名身份认证的方法,包括系统初始化,服务端生成私钥d和公钥P,将私钥d保密,对外发布公钥P;用户注册;用户离线预认证;在线双向认证与密钥协商;用户口令更新。采用了本发明专利技术的基于SM2算法实现三因素匿名身份认证的方法,利用多重手段实现双向认证和密钥协商安全,从而解决了现有技术中敏感信息泄露、离线字典攻击、密码算法安全强度不足等问题。算法安全强度不足等问题。算法安全强度不足等问题。

【技术实现步骤摘要】
基于SM2算法实现三因素匿名身份认证的方法


[0001]本专利技术涉及网络信息安全领域,尤其涉及SM2算法领域,具体是指一种基于SM2算法实现三因素匿名身份认证的方法。

技术介绍

[0002]为了保障用户客户端和后台服务端间的通信安全,身份认证是必不可少的安全措施,目前的认证方案有以下问题。
[0003](1)敏感信息保护
[0004]用户标识口令、用户设备、生物特征结合形成的三因素身份认证可以提供更丰富的安全属性。然而,如果用户自选标识、口令和生物特征传输或存储不当,如明文传输、存储标识、口令和生物特征等,则会导致敏感信息泄露。应注意,即使在传输或存储时用杂凑值替代原值,由于用户自选标识和口令通常是低熵的,攻击者依旧可以穷举标识或口令字典比对杂凑值破解用户自选标识和口令。
[0005]另一方面,如果对相同数据的每次加密结果都是相同的,如使用对称密码算法加密数据且每次加密中加密密钥和数据相同,则攻击者依旧可以通过相同的加密结果在会话间追踪用户,导致用户行为这一敏感信息泄露。
[0006](2)离线字典攻击
[0007]目前身份认证方案为了实现离线口令更新一般都具备用户标识、口令和生物特征的离线验证功能,由于用户设备易丢失,且生物特征泄露多发,攻击者盗取用户设备和生物特征后即可离线验证标识口令猜测正确性,若用户自选标识、口令为低熵常见标识、口令,则发动离线字典攻击可在短期内得到用户自选标识、口令。
[0008](3)密码运算安全
[0009]密码运算是身份认证安全的核心,密码算法的缺陷会产生安全风险,如利用切比雪夫混沌映射的固有缺陷可以从给定密文恢复出消息。

技术实现思路

[0010]本专利技术的目的是克服了上述现有技术的缺点,提供了一种满足安全、高效、适用范围较为广泛的基于SM2算法实现三因素匿名身份认证的方法。
[0011]为了实现上述目的,本专利技术的基于SM2算法实现三因素匿名身份认证的方法如下:
[0012]该基于SM2算法实现三因素匿名身份认证的方法,其主要特点是,所述的方法包括以下步骤:
[0013](1)系统初始化,服务端生成私钥d和公钥P,将私钥d保密,对外发布公钥P;
[0014](2)用户注册;
[0015](3)用户离线预认证;
[0016](4)在线双向认证与密钥协商;
[0017](5)用户口令更新。
[0018]较佳地,所述的步骤(2)具体包括以下步骤:
[0019](2.1)用户端采集用户的自选标识ID、口令PW和生物特征B;
[0020](2.2)对所述用户的生物特征进行模糊提取生成随机字串σ和公开字串τ;
[0021](2.3)产生随机数k,计算自选标识ID、随机数k和随机字串σ拼接所得字串的杂凑值,得到用户注册标识UID;
[0022](2.4)计算自选口令PW和随机字串σ拼接所得字串的杂凑值,得到密钥K;
[0023](2.5)使用密钥K对随机数k进行混淆处理,得到密文值X;
[0024](2.6)引入映射f计算校验值R=f(UID),映射f应满足:在f的原像集中,任取元素x存在另一个元素y,使x和y的像相同,且符合条件的y应有足够多个;
[0025](2.7)将密文值X、校验值R、公开字串τ和映射f写入用户设备;
[0026](2.8)使用随机数k和服务端公钥P加密注册标识UID,得到用户注册信息C=C1||C3||C2,其中C1=[k]G,发送注册信息C至服务端,注册信息C由C1=[k]G、C3、C2组成,C1、C3、C2分别为SM2算法加密结果的C1、C3、C2部分;
[0027](2.9)服务端收到用户注册信息C后使用服务端私钥d解密得到注册标识UID,若解密成功则将注册标识UID和C1作为键值对存储于数据库中,发送注册完成消息至用户端。
[0028]较佳地,所述的步骤(3)具体包括以下步骤:
[0029](3.1)用户端采集用户的自选标识ID*、口令PW*和生物特征B*,
[0030](3.2)对所述用户的生物特征B*进行模糊提取,使用用户设备中的公开字串τ恢复随机字串σ*;
[0031](3.3)计算自选口令PW*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到密钥K*;
[0032](3.4)使用密钥K*对密文值X进行提取处理,得到随机数k*;
[0033](3.5)计算自选标识ID*、随机数k*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到用户注册UID*;
[0034](3.6)若校验值R*=f(UID*)与用户设备中的校验值R相等,则用户离线预认证成功,进行在线双向认证与密钥协商和用户口令更新。
[0035]较佳地,所述的步骤(4)具体包括以下步骤:
[0036](4.1)用户端产生随机数a,使用随机数a和服务端公钥P加密注册标识UID*,得到用户认证信息C*=C1*||C3*||C2*,其中C1*=[k*]G,发送认证信息C*至服务端,认证信息C*由C1*=[k*]G、C3*、C2*组成,C1*、C3*、C2*分别为SM2算法加密结果的C1、C3、C2部分;
[0037](4.2)服务端收到用户认证信息C*后使用服务端私钥d解密得到注册标识UID*,若解密成功且数据库中存在键为注册标识UID*的值,则用户认证成功,所述值记为V*;
[0038](4.3)服务端产生随机数b,根据以下公式计算会话密钥SK、M1和M2,并发送{M1,M2}至用户端:
[0039]SK=[b]C1*,M1=[b]G,M2=h(M1||[d]V*);
[0040]其中G为椭圆曲线的基点,h()为杂凑函数,b为随机数,d为私钥,其中C1*=[k*]G,G为椭圆曲线的基点;
[0041](4.4)用户端收到{M1,M2}后验证h(M1||[k*]P)与M2是否相等,若二者相等,则服务端认证成功,计算会话密钥SK。
[0042]较佳地,所述的步骤(5)具体包括以下步骤:
[0043](5.1)采集用户的新口令PW
new
,计算新口令PW
new
和随机字串σ*拼接得到字串的杂凑值,得到新密钥K
new

[0044](5.2)使用新密钥K
new
对随机数k*进行混淆处理,得到新密文值X
new
,替换用户设备中的密文值X为新密文值X
new

[0045]采用了本专利技术的基于SM2算法实现三因素匿名身份认证的方法,利用多重手段实现双向认证和密钥协商安全,从而解决了现有技术中敏感信息泄露、离线字典攻击、密码算法安全强度不足等问题。
附图说明
[0046]图1为本专利技术的基于SM2算法实现三因素匿名身份认证的方法的流程图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SM2算法实现三因素匿名身份认证的方法,其特征在于,所述的方法包括以下步骤:(1)系统初始化,服务端生成私钥d和公钥P,将私钥d保密,对外发布公钥P;(2)用户注册;(3)用户离线预认证;(4)在线双向认证与密钥协商;(5)用户口令更新。2.根据权利要求1所述的基于SM2算法实现三因素匿名身份认证的方法,其特征在于,所述的步骤(2)具体包括以下步骤:(2.1)用户端采集用户的自选标识ID、口令PW和生物特征B;(2.2)对所述用户的生物特征进行模糊提取生成随机字串σ和公开字串τ;(2.3)产生随机数k,计算自选标识ID、随机数k和随机字串σ拼接所得字串的杂凑值,得到用户注册标识UID;(2.4)计算自选口令PW和随机字串σ拼接所得字串的杂凑值,得到密钥K;(2.5)使用密钥K对随机数k进行混淆处理,得到密文值X;(2.6)引入映射f计算校验值R=f(UID);(2.7)将密文值X、校验值R、公开字串τ和映射f写入用户设备;(2.8)使用随机数k和服务端公钥P加密注册标识UID,得到用户注册信息C,发送注册信息C至服务端;(2.9)服务端收到用户注册信息C后使用服务端私钥d解密得到注册标识UID,若解密成功则将注册标识UID和C1作为键值对存储于数据库中,发送注册完成消息至用户端,其中C1=[k]G,G为椭圆曲线的基点。3.根据权利要求1所述的基于SM2算法实现三因素匿名身份认证的方法,其特征在于,所述的步骤(3)具体包括以下步骤:(3.1)用户端采集用户的自选标识ID*、口令PW*和生物特征B*;(3.2)对所述用户的生物特征B*进行模糊提取,使用用户设备中的公开字串τ恢复随机字串σ*;(3.3)计算自选口令PW*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到密钥K*;(3.4)使用密钥K*对密文值X进行提取处理,得到随机数k*;(3.5)计算...

【专利技术属性】
技术研发人员:戴聪
申请(专利权)人:公安部第三研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1