CN113486324A - 基于sm2算法实现三因素匿名身份认证的方法 - Google Patents
基于sm2算法实现三因素匿名身份认证的方法 Download PDFInfo
- Publication number
- CN113486324A CN113486324A CN202110838583.5A CN202110838583A CN113486324A CN 113486324 A CN113486324 A CN 113486324A CN 202110838583 A CN202110838583 A CN 202110838583A CN 113486324 A CN113486324 A CN 113486324A
- Authority
- CN
- China
- Prior art keywords
- user
- key
- string
- random number
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000013507 mapping Methods 0.000 claims description 16
- 238000000605 extraction Methods 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 230000002457 bidirectional effect Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于SM2算法实现三因素匿名身份认证的方法,包括系统初始化,服务端生成私钥d和公钥P,将私钥d保密,对外发布公钥P;用户注册;用户离线预认证;在线双向认证与密钥协商;用户口令更新。采用了本发明的基于SM2算法实现三因素匿名身份认证的方法,利用多重手段实现双向认证和密钥协商安全,从而解决了现有技术中敏感信息泄露、离线字典攻击、密码算法安全强度不足等问题。
Description
技术领域
本发明涉及网络信息安全领域,尤其涉及SM2算法领域,具体是指一种基于SM2算法实现三因素匿名身份认证的方法。
背景技术
为了保障用户客户端和后台服务端间的通信安全,身份认证是必不可少的安全措施,目前的认证方案有以下问题。
(1)敏感信息保护
用户标识口令、用户设备、生物特征结合形成的三因素身份认证可以提供更丰富的安全属性。然而,如果用户自选标识、口令和生物特征传输或存储不当,如明文传输、存储标识、口令和生物特征等,则会导致敏感信息泄露。应注意,即使在传输或存储时用杂凑值替代原值,由于用户自选标识和口令通常是低熵的,攻击者依旧可以穷举标识或口令字典比对杂凑值破解用户自选标识和口令。
另一方面,如果对相同数据的每次加密结果都是相同的,如使用对称密码算法加密数据且每次加密中加密密钥和数据相同,则攻击者依旧可以通过相同的加密结果在会话间追踪用户,导致用户行为这一敏感信息泄露。
(2)离线字典攻击
目前身份认证方案为了实现离线口令更新一般都具备用户标识、口令和生物特征的离线验证功能,由于用户设备易丢失,且生物特征泄露多发,攻击者盗取用户设备和生物特征后即可离线验证标识口令猜测正确性,若用户自选标识、口令为低熵常见标识、口令,则发动离线字典攻击可在短期内得到用户自选标识、口令。
(3)密码运算安全
密码运算是身份认证安全的核心,密码算法的缺陷会产生安全风险,如利用切比雪夫混沌映射的固有缺陷可以从给定密文恢复出消息。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种满足安全、高效、适用范围较为广泛的基于SM2算法实现三因素匿名身份认证的方法。
为了实现上述目的,本发明的基于SM2算法实现三因素匿名身份认证的方法如下:
该基于SM2算法实现三因素匿名身份认证的方法,其主要特点是,所述的方法包括以下步骤:
(1)系统初始化,服务端生成私钥d和公钥P,将私钥d保密,对外发布公钥P;
(2)用户注册;
(3)用户离线预认证;
(4)在线双向认证与密钥协商;
(5)用户口令更新。
较佳地,所述的步骤(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),映射f应满足:在f的原像集中,任取元素x存在另一个元素y,使x和y的像相同,且符合条件的y应有足够多个;
(2.7)将密文值X、校验值R、公开字串τ和映射f写入用户设备;
(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部分;
(2.9)服务端收到用户注册信息C后使用服务端私钥d解密得到注册标识UID,若解密成功则将注册标识UID和C1作为键值对存储于数据库中,发送注册完成消息至用户端。
较佳地,所述的步骤(3)具体包括以下步骤:
(3.1)用户端采集用户的自选标识ID*、口令PW*和生物特征B*,
(3.2)对所述用户的生物特征B*进行模糊提取,使用用户设备中的公开字串τ恢复随机字串σ*;
(3.3)计算自选口令PW*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到密钥K*;
(3.4)使用密钥K*对密文值X进行提取处理,得到随机数k*;
(3.5)计算自选标识ID*、随机数k*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到用户注册UID*;
(3.6)若校验值R*=f(UID*)与用户设备中的校验值R相等,则用户离线预认证成功,进行在线双向认证与密钥协商和用户口令更新。
较佳地,所述的步骤(4)具体包括以下步骤:
(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部分;
(4.2)服务端收到用户认证信息C*后使用服务端私钥d解密得到注册标识UID*,若解密成功且数据库中存在键为注册标识UID*的值,则用户认证成功,所述值记为V*;
(4.3)服务端产生随机数b,根据以下公式计算会话密钥SK、M1和M2,并发送{M1,M2}至用户端:
SK=[b]C1*,M1=[b]G,M2=h(M1||[d]V*);
其中G为椭圆曲线的基点,h()为杂凑函数,b为随机数,d为私钥,其中C1*=[k*]G,G为椭圆曲线的基点;
(4.4)用户端收到{M1,M2}后验证h(M1||[k*]P)与M2是否相等,若二者相等,则服务端认证成功,计算会话密钥SK。
较佳地,所述的步骤(5)具体包括以下步骤:
(5.1)采集用户的新口令PWnew,计算新口令PWnew和随机字串σ*拼接得到字串的杂凑值,得到新密钥Knew;
(5.2)使用新密钥Knew对随机数k*进行混淆处理,得到新密文值Xnew,替换用户设备中的密文值X为新密文值Xnew。
采用了本发明的基于SM2算法实现三因素匿名身份认证的方法,利用多重手段实现双向认证和密钥协商安全,从而解决了现有技术中敏感信息泄露、离线字典攻击、密码算法安全强度不足等问题。
附图说明
图1为本发明的基于SM2算法实现三因素匿名身份认证的方法的流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明的该基于SM2算法实现三因素匿名身份认证的方法,其中包括以下步骤:
(1)系统初始化,服务端生成私钥d和公钥P,将私钥d保密,对外发布公钥P;
(2)用户注册;
(3)用户离线预认证;
(4)在线双向认证与密钥协商;
(5)用户口令更新。
作为本发明的优选实施方式,所述的步骤(2)具体包括以下步骤:
(2.1)用户端采集用户的自选标识ID、口令PW和生物特征B;
(2.2)对所述用户的生物特征进行模糊提取生成随机字串σ和公开字串τ,即(σ,τ)=Gen(B),其中Gen()为模糊提取中的生成算法;
(2.3)产生随机数k,计算自选标识ID、随机数k和随机字串σ拼接所得字串的杂凑值,得到用户注册标识UID;
(2.4)计算自选口令PW和随机字串σ拼接所得字串的杂凑值,得到密钥K;
(2.5)使用密钥K对随机数k进行混淆处理,得到密文值X;
(2.6)引入映射f计算校验值R=f(UID),映射f应满足:在f的原像集中,任取元素x存在另一个元素y,使x和y的像相同,且符合条件的y应有足够多个;
(2.7)将密文值X、校验值R、公开字串τ和映射f写入用户设备;
(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部分;
(2.9)服务端收到用户注册信息C后使用服务端私钥d解密得到注册标识UID,若解密成功则将注册标识UID和C1作为键值对存储于数据库中,发送注册完成消息至用户端,其中C1=[k]G。
作为本发明的优选实施方式,所述的步骤(3)具体包括以下步骤:
(3.1)用户端采集用户的自选标识ID*、口令PW*和生物特征B*,
(3.2)对所述用户的生物特征B*进行模糊提取,使用用户设备中的公开字串τ恢复随机字串σ*,即σ*=Rep(B*,τ),Rep()为模糊提取中的恢复算法;
(3.3)计算自选口令PW*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到密钥K*;
(3.4)使用密钥K*对密文值X进行提取处理,得到随机数k*;
(3.5)计算自选标识ID*、随机数k*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到用户注册UID*;
(3.6)若校验值R*=f(UID*)与用户设备中的校验值R相等,则用户离线预认证成功,进行在线双向认证与密钥协商和用户口令更新。
作为本发明的优选实施方式,所述的步骤(4)具体包括以下步骤:
(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部分;
(4.2)服务端收到用户认证信息C*后使用服务端私钥d解密得到注册标识UID*,若解密成功且数据库中存在键为注册标识UID*的值,则用户认证成功,所述值记为V*;
(4.3)服务端产生随机数b,根据以下公式计算会话密钥SK、M1和M2,并发送{M1,M2}至用户端:
SK=[b]C1*,M1=[b]G,M2=h(M1||[d]V*);
其中G为椭圆曲线的基点,h()为杂凑函数,b为随机数,d为私钥;
(4.4)用户端收到{M1,M2}后验证h(M1||[k*]P)与M2是否相等,若二者相等,则服务端认证成功,计算会话密钥SK=[a]M1。
作为本发明的优选实施方式,所述的步骤(5)具体包括以下步骤:
(5.1)采集用户的新口令PWnew,计算新口令PWnew和随机字串σ*拼接得到字串的杂凑值,得到新密钥Knew;
(5.2)使用新密钥Knew对随机数k*进行混淆处理,得到新密文值Xnew,替换用户设备中的密文值X为新密文值Xnew。
本发明的具体实施方式中,提出基于SM2算法的三因素匿名身份认证方案,实现安全高效的用户注册和身份认证服务。方案使用模糊提取、SM3密码杂凑算法和SM2椭圆曲线公钥密码算法保护用户设备和服务端交互安全,解决敏感信息泄露的问题;将用户自选标识、口令和生物特征的离线精确验证改为模糊验证,解决离线字典攻击的问题;使用椭圆曲线迪菲-赫尔曼秘钥交换算法实现密钥协商,解决密码算法安全强度不足问题。
基于SM2算法的三因素匿名身份认证方案,其特征在于包括五个阶段,分别为系统初始化、用户注册、用户离线预认证、在线双向认证与密钥协商、用户口令更新,使用SM2椭圆曲线公钥密码算法产生公私钥、加解密数据,使用SM3密码杂凑算法计算杂凑值,其中,本技术方案中公式项[x]Y指x和Y进行椭圆曲线乘法。
系统初始化中服务端生成私钥d和公钥P,私钥d保密,公钥P对外发布。
用户注册中用户端采集用户的自选标识ID、口令PW和生物特征B,对所述用户的生物特征进行模糊提取生成随机字串σ和公开字串τ,即(σ,τ)=Gen(B);产生随机数k,计算自选标识ID、随机数k和随机字串σ拼接所得字串的杂凑值,得到用户注册标识UID,此处对自选标识ID、随机数k和随机字串σ拼接顺序不做要求,可由用户自行选择三者的排列顺序,一旦选定则在整个方案的实施过程中不再改变;计算自选口令PW和随机字串σ拼接所得字串的杂凑值,得到密钥K,此处对自选口令PW和随机字串σ拼接顺序不做要求,可由用户自行选择二者的排列顺序,一旦选定则在整个方案的实施过程中不再改变;使用密钥K对随机数k进行混淆处理,得到密文值X;引入映射f计算校验值R=f(UID),映射f应满足:在f的原像集中,任取元素x存在另一个元素y,使x和y的像相同,且符合条件的y应有足够多个;将密文值X、校验值R、公开字串τ和映射f写入用户设备;使用随机数k和服务端公钥P加密注册标识UID,得到用户注册信息C=C1||C3||C2=enc(UID,k,P),发送注册信息C至服务端,注册信息C由C1=[k]G、C3、C2组成,C1、C3、C2分别为SM2算法加密结果的C1、C3、C2部分。服务端收到用户注册信息C后使用服务端私钥d解密得到注册标识UID=dec(C,d),当且仅当解密成功将注册标识UID和C1作为键-值对存储于数据库中;发送注册完成消息至用户端。
用户离线预认证中用户端再次采集用户的自选标识ID*、口令PW*和生物特征B*,对所述用户的生物特征B*进行模糊提取,使用用户设备中的公开字串τ恢复随机字串σ*,即σ*=Rep(B*,τ);计算自选口令PW*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到密钥K*;使用密钥K*对密文值X进行提取处理,得到随机数k*;计算自选标识ID*、随机数k*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到用户注册UID*;当且仅当校验值R*=f(UID*)与用户设备中的校验值R相等,用户离线预认证成功。当且仅当用户离线预认证成功可以进行在线双向认证与密钥协商和用户口令更新。
在线双向认证与密钥协商中用户端产生随机数a,使用随机数a和服务端公钥P加密注册标识UID*,得到用户认证信息C*=C1*||C3*||C2*=enc(UID*,a,P),发送认证信息C*至服务端,认证信息C*由C1*=[k*]G、C3*、C2*组成,C1*、C3*、C2*分别为SM2算法加密结果的C1、C3、C2部分。服务端收到用户认证信息C*后使用服务端私钥d解密得到注册标识UID*=dec(C*,d),当且仅当解密成功且数据库中存在键为注册标识UID*的值,用户认证成功,所述值记为V*;服务端产生随机数b,计算会话密钥SK=[b]C1*,M1=[b]G,M2=h(M1||[d]V*),发送{M1,M2}至用户端。用户端收到{M1,M2}后验证h(M1||[k*]P)与M2是否相等,当且仅当二者相等,服务端认证成功,计算会话密钥SK=[a]M1。
用户口令更新中采集用户的新口令PWnew,计算新口令PWnew和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到新密钥Knew;使用新密钥Knew对随机数k*进行混淆处理,得到新密文值Xnew,替换用户设备中的密文值X为新密文值Xnew。
模糊提取包括生成算法和恢复算法。生成算法输入某给定随机源S的一次采样,输出保密随机字串σ和公开字串τ,记为(σ,τ)=Gen(S)。恢复算法输入该随机源的另一次采样S*和公开字串τ,输出重新生成的随机字串σ*,记为σ*=Rep(S*,τ)。只要对随机源的两次采样间的差距不超过容错许可度可得σ*=σ。
SM3密码杂凑算法是一种密码散列算法,密码散列的特性有(1)对于任意给定消息,很容易就能计算得到散列数值;(2)难以由已知散列数值反推出原始消息;(3)修改消息内容总会导致散列数值改变;(4)不同消息的散列数值是不同的。SM3算法先对长度小于264比特的消息data进行填充,再按512比特分组迭代压缩,最后输出长度为256比特的杂凑值hash,记为hash=h(data)。
SM2椭圆曲线公钥密码算法属于椭圆曲线密码体系(根据2016年发表在《信息安全研究》的期刊文献《SM2椭圆曲线公钥密码算法综述》可得),公私钥的生成方式为对标准给定的椭圆曲线E、基点G∈E、基点的阶n,随机生成私钥d∈[1,n-1],计算公钥P=[d]G。
对明文data加密时先产生随机数k∈[1,n-1],输出密文C=C1||C3||C2,其中C1=[k]G,记为C=enc(data,k,P)。
对密文C=C1||C3||C2解密得到明文data,记为data=dec(C,d)。
椭圆曲线迪菲-赫尔曼秘钥交换算法即交互双方A和B分别产生随机数a∈[1,n-1]和b∈[1,n-1],并分别向对方发送PA=[a]G和PB=[b]G,则会话密钥即为SK=[a]PB=[b]PA。
基于SM2算法的三因素匿名身份认证方案包括五个阶段,分别为系统初始化、用户注册、用户离线预认证、在线双向认证与密钥协商、用户口令更新,所述方法包括:
所述的系统初始化中服务端基于SM2算法生成私钥d和公钥P=[d]G,私钥d保密,公钥P对外发布。
所述的用户注册中用户端采集用户的自选标识ID、口令PW和生物特征B,对所述用户的生物特征进行模糊提取生成随机字串σ和公开字串τ,即(σ,τ)=Gen(B);产生随机数k,计算自选标识ID、随机数k和随机字串σ拼接所得字串的杂凑值,得到用户注册标识UID,此处对自选标识ID、随机数k和随机字串σ拼接顺序不做要求,可由用户自行选择三者的排列顺序,一旦选定则在整个方案的实施过程中不再改变;计算自选口令PW和随机字串σ拼接所得字串的杂凑值,得到密钥K,此处对自选口令PW和随机字串σ拼接顺序不做要求,可由用户自行选择二者的排列顺序,一旦选定则在整个方案的实施过程中不再改变;使用密钥K对随机数k进行混淆处理,得到密文值X;引入映射f计算校验值R=f(UID),映射f应满足其像集中的每个元素的原像都有足够多个;将密文值X、校验值R、公开字串τ和映射f写入用户设备;使用随机数k和服务端公钥P加密注册标识UID,得到用户注册信息C=C1||C3||C2=enc(UID,k,P),发送注册信息C至服务端。
服务端收到用户注册信息C后使用服务端私钥d解密得到注册标识UID=dec(C,d),当且仅当解密成功将注册标识UID和C1作为键-值对存储于数据库中;发送注册完成消息至用户端。
所述的用户离线预认证中用户端再次采集用户的自选标识ID*、口令PW*和生物特征B*,对所述用户的生物特征B*进行模糊提取,使用用户设备中的公开字串τ恢复随机字串σ*,即σ*=Rep(B*,τ);计算自选口令PW*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到密钥K*;使用密钥K*对密文值X进行提取处理,得到随机数k*;计算自选标识ID*、随机数k*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到用户注册UID*;当且仅当校验值R*=f(UID*)与用户设备中的校验值R相等,用户离线预认证成功。当且仅当用户离线预认证成功可以进行在线双向认证与密钥协商和用户口令更新。
所述的在线双向认证与密钥协商中用户端产生随机数a,使用随机数a和服务端公钥P加密注册标识UID*,得到用户认证信息C*=C1*||C3*||C2*=enc(UID*,a,P),发送认证信息C*至服务端。
服务端收到用户认证信息C*后使用服务端私钥d解密得到注册标识UID*=dec(C*,d),当且仅当解密成功且数据库中存在键为注册标识UID*的值,用户认证成功,所述值记为V*;服务端产生随机数b,计算会话密钥SK=[b]C1*,M1=[b]G,M2=h(M1||[d]V*),发送{M1,M2}至用户端。
用户端收到{M1,M2}后计算会话密钥验证h(M1||[k*]P)与M2是否相等,当且仅当二者相等,服务端认证成功,计算会话密钥SK=[a]M1。
所述的用户口令更新中采集用户的新口令PWnew,计算新口令PWnew和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到新密钥Knew;使用新密钥Knew对随机数k*进行混淆处理,得到新密文值Xnew,替换用户设备中的密文值X为新密文值Xnew。
在具体实施方式中,所述的系统初始化中服务端按照《GB/T32918—2016椭圆曲线公钥密码算法》给出的椭圆曲线E、基点G∈E、基点的阶n,随机生成私钥d∈[1,n-1],计算公钥P=[d]G,私钥d保密,公钥P对外发布。
所述的用户注册中用户端采集用户的自选标识ID、口令PW和生物特征B,对所述用户的生物特征进行模糊提取生成随机字串σ和公开字串τ,即(σ,τ)=Gen(B);产生随机数k∈[1,n-1],计算自选标识ID、随机数k和随机字串σ拼接所得字串的杂凑值,得到用户注册标识UID=h(ID||k||σ);计算自选口令PW和随机字串σ拼接所得字串的杂凑值,得到密钥K=h(PW||σ);计算随机数k异或密钥K得到密文值X=k⊕K;将密文值X、校验值R=UIDmod256、公开字串τ和映射f(x)=x mod 256写入用户设备;使用随机数k和服务端公钥P加密注册标识UID,得到用户注册信息C=C1||C3||C2=enc(UID,k,P),发送注册信息C至服务端。
服务端收到用户注册信息C后使用服务端私钥d解密得到注册标识UID=dec(C,d),当且仅当解密成功将注册标识UID和C1作为键-值对存储于数据库中,否则流程终止;服务端发送注册完成消息至用户端。
所述的用户离线预认证中用户端再次采集用户的自选标识ID*、口令PW*和生物特征B*,对所述用户的生物特征B*进行模糊提取,使用用户设备中的公开字串τ恢复随机字串σ*,即σ*=Rep(B*,τ);计算自选口令PW*和随机字串σ*拼接所得字串的杂凑值,得到密钥K*=h(PW*||σ*);计算用户设备中的密文值X异或密钥K*得到随机数k*=X⊕K*;计算自选标识ID*、随机数k*和随机字串σ*拼接所得字串的杂凑值,得到用户注册UID*=h(ID*||k*||σ*);当且仅当校验值R*=UID*mod 256与用户设备中的校验值R相等,用户离线预认证成功。当且仅当用户离线预认证成功可以进行在线双向认证与密钥协商和用户口令更新。
所述的在线双向认证与密钥协商中用户端产生随机数a,使用随机数a∈[1,n-1]和服务端公钥P加密注册标识UID*,得到用户认证信息C*=C1*||C3*||C2*=enc(UID*,a,P),发送认证信息C*至服务端。
服务端收到用户认证信息C*后使用服务端私钥d解密得到注册标识UID*=dec(C*,d),当且仅当解密成功且数据库中存在键为注册标识UID*的值,用户认证成功,所述值记为V*,否则流程终止;服务端产生随机数b∈[1,n-1],计算会话密钥SK=[b]C1*,M1=[b]G,M2=h(M1||[d]V*),发送{M1,M2}至用户端。
用户端收到{M1,M2}后验证h(M1||[k*]P)与M2是否相等,当且仅当二者相等,服务端认证成功,否则流程终止;用户端计算会话密钥SK=[a]M1。
所述的用户口令更新中采集用户的新口令PWnew,计算新口令PWnew和随机字串σ*拼接所得字串的杂凑值,得到新密钥Knew=h(PWnew||σ*);计算随机数k*异或新密钥Knew得到新密文值Xnew=k*⊕Knew,替换用户设备中的密文值X为密文值Xnew。
本发明所提供的基于SM2算法的三因素匿名身份认证方案中,用户口令PW仅用于计算隐藏随机数k的密钥K,不存储在任何位置;生物特征B仅用于经模糊提取得到随机字串σ,随机字串σ仅用于计算隐藏随机数k的密钥K和注册标识UID,不存储在任何位置;自选标识ID仅用于计算注册标识UID,不存储在任何位置。注册标识UID为自选标识ID、随机数k和随机字串σ拼接所得字串的杂凑值,猜测正确率仅1/232可忽略不计,由于SM3算法的单向性也无法从中恢复出自选标识ID、随机数k和随机字串σ。注册标识UID使用SM2算法加密后传输,SM2算法每次加密都引入随机数,即使数据相同每次加密结果也不同,攻击者无法在会话间追踪用户。攻击者需要服务端的私钥才能(1)解密所述的注册消息和认证消息得到注册标识UID;(2)计算M2通过用户对服务端的认证。也就是说仅盗取数据库中的数据并无法从中得到用户敏感信息,也无法把盗取的信息与用户关联起来,也无法由盗取的信息假冒服务端。以上解决了由不当存储和传输导致的敏感信息泄露问题。
离线预认证的校验值R只能进行模糊验证,即有足够多个猜测可使离线预认证。由于无法精确验证猜测的正确性,即使攻击者盗取生物特征也无法发动离线字典攻击破解自选标识ID和自选口令PW。
椭圆曲线密码体系的安全性基于椭圆曲线上离散对数问题的难解性,该问题无已知的多项式时间解,密码强度高。
用户向服务端发送的注册消息C和认证消息C*,由SM2算法自带的完整性校验(即C3校验)验证完整性,服务端向用户发送的{M1,M2},由验证h(M1||[k*]P)与M2是否相等验证完整性。所述的注册消息C、认证消息C*和{M1,M2}都引入一次一变的随机数,可防止重放攻击。
采用了本发明的基于SM2算法实现三因素匿名身份认证的方法,利用多重手段实现双向认证和密钥协商安全,从而解决了现有技术中敏感信息泄露、离线字典攻击、密码算法安全强度不足等问题。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (5)
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)计算自选标识ID*、随机数k*和随机字串σ*拼接所得字串的杂凑值,拼接顺序应按照用户注册时选定的顺序,得到用户注册UID*;
(3.6)若校验值R*=f(UID*)与用户设备中的校验值R相等,则用户离线预认证成功,进行在线双向认证与密钥协商和用户口令更新。
4.根据权利要求1所述的基于SM2算法实现三因素匿名身份认证的方法,其特征在于,所述的步骤(4)具体包括以下步骤:
(4.1)用户端产生随机数a,使用随机数a和服务端公钥P加密注册标识UID*,得到用户认证信息C*,发送认证信息C*至服务端;
(4.2)服务端收到用户认证信息C*后使用服务端私钥d解密得到注册标识UID*,若解密成功且数据库中存在键为注册标识UID*的值,则用户认证成功,所述值记为V*;
(4.3)服务端产生随机数b,根据以下公式计算会话密钥SK、M1和M2,并发送{M1,M2}至用户端:
SK=[b]C1*,M1=[b]G,M2=h(M1||[d]V*);
其中G为椭圆曲线的基点,h()为杂凑函数,b为随机数,d为私钥,其中C1*=[k*]G,G为椭圆曲线的基点;
(4.4)用户端收到{M1,M2}后验证h(M1||[k*]P)与M2是否相等,若二者相等,则服务端认证成功,计算会话密钥SK=[a]M1。
5.根据权利要求1所述的基于SM2算法实现三因素匿名身份认证的方法,其特征在于,所述的步骤(5)具体包括以下步骤:
(5.1)采集用户的新口令PWnew,计算新口令PWnew和随机字串σ*拼接得到字串的杂凑值,得到新密钥Knew;
(5.2)使用新密钥Knew对随机数k*进行混淆处理,得到新密文值Xnew,替换用户设备中的密文值X为新密文值Xnew。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838583.5A CN113486324B (zh) | 2021-07-23 | 2021-07-23 | 基于sm2算法实现三因素匿名身份认证的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838583.5A CN113486324B (zh) | 2021-07-23 | 2021-07-23 | 基于sm2算法实现三因素匿名身份认证的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486324A true CN113486324A (zh) | 2021-10-08 |
CN113486324B CN113486324B (zh) | 2023-07-21 |
Family
ID=77943508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110838583.5A Active CN113486324B (zh) | 2021-07-23 | 2021-07-23 | 基于sm2算法实现三因素匿名身份认证的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486324B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125833A (zh) * | 2021-10-29 | 2022-03-01 | 南京信息工程大学 | 一种用于智能设备通信的多因素认证密钥协商方法 |
CN114386020A (zh) * | 2021-12-17 | 2022-04-22 | 山东量子科学技术研究院有限公司 | 基于量子安全的快速二次身份认证方法及系统 |
CN114866255A (zh) * | 2022-04-28 | 2022-08-05 | 西安电子科技大学 | 以用户为中心面向多idp聚合的多因素认证方法 |
CN115001658A (zh) * | 2022-04-06 | 2022-09-02 | 八维通科技有限公司 | 在非稳定网络环境下可信的地铁身份认证和存取控制方法 |
CN116192474A (zh) * | 2023-02-01 | 2023-05-30 | 中安云科科技发展(山东)有限公司 | 一种基于国密算法的api接口高性能强身份认证的方法 |
CN116566618A (zh) * | 2023-05-18 | 2023-08-08 | 西安电子科技大学 | 基于在线离线Paillier同态加密的生物特征认证方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871553A (zh) * | 2016-06-28 | 2016-08-17 | 电子科技大学 | 一种无需用户身份的三因素的远程用户认证方法 |
CN106850228A (zh) * | 2017-01-11 | 2017-06-13 | 北京航空航天大学 | 一种便携式智能口令管理体制的建立与操作方法 |
CN109474419A (zh) * | 2018-10-22 | 2019-03-15 | 航天信息股份有限公司 | 一种活体人像照片加密、解密方法及加解密系统 |
US20200074121A1 (en) * | 2018-08-29 | 2020-03-05 | Alibaba Group Holding Limited | Cryptographic Operation Processing Methods, Apparatuses, and Systems |
CN111818039A (zh) * | 2020-07-03 | 2020-10-23 | 西安电子科技大学 | 物联网中基于puf的三因素匿名用户认证协议方法 |
CN113051547A (zh) * | 2021-03-24 | 2021-06-29 | 曲阜师范大学 | 多服务器架构下的双向认证与密钥协商协议 |
-
2021
- 2021-07-23 CN CN202110838583.5A patent/CN113486324B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871553A (zh) * | 2016-06-28 | 2016-08-17 | 电子科技大学 | 一种无需用户身份的三因素的远程用户认证方法 |
CN106850228A (zh) * | 2017-01-11 | 2017-06-13 | 北京航空航天大学 | 一种便携式智能口令管理体制的建立与操作方法 |
US20200074121A1 (en) * | 2018-08-29 | 2020-03-05 | Alibaba Group Holding Limited | Cryptographic Operation Processing Methods, Apparatuses, and Systems |
CN109474419A (zh) * | 2018-10-22 | 2019-03-15 | 航天信息股份有限公司 | 一种活体人像照片加密、解密方法及加解密系统 |
CN111818039A (zh) * | 2020-07-03 | 2020-10-23 | 西安电子科技大学 | 物联网中基于puf的三因素匿名用户认证协议方法 |
CN113051547A (zh) * | 2021-03-24 | 2021-06-29 | 曲阜师范大学 | 多服务器架构下的双向认证与密钥协商协议 |
Non-Patent Citations (6)
Title |
---|
LINLIN ZHANG等: "Identity Authentication Based on Domestic Commercial Cryptography with Blockchain in the Heterogeneous Alliance Network", 《2021 IEEE INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS AND COMPUTER ENGINEERING (ICCECE)》, pages 191 - 195 * |
戴聪: "一种移动网络通信数据安全防护方案", 《中国新通信》, vol. 23, no. 1, pages 1 - 2 * |
戴聪: "基于国密算法和模糊提取的多因素身份认证方案", 《计算机应用》, vol. 41, no. 2, pages 139 - 145 * |
曹阳: "基于ECDLP的SIP认证密钥协商协议", 《计算机系统应用》, vol. 25, no. 03, pages 225 - 228 * |
胡振宇等: "移动云计算双因子身份认证方法", 《计算机工程与设计》, vol. 37, no. 09, pages 2366 - 2371 * |
齐锋等: "一种基于USB Key的双私钥安全因子身份认证方案", 《信息安全研究》, vol. 5, no. 06, pages 500 - 506 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125833A (zh) * | 2021-10-29 | 2022-03-01 | 南京信息工程大学 | 一种用于智能设备通信的多因素认证密钥协商方法 |
CN114125833B (zh) * | 2021-10-29 | 2023-05-09 | 南京信息工程大学 | 一种用于智能设备通信的多因素认证密钥协商方法 |
CN114386020A (zh) * | 2021-12-17 | 2022-04-22 | 山东量子科学技术研究院有限公司 | 基于量子安全的快速二次身份认证方法及系统 |
CN114386020B (zh) * | 2021-12-17 | 2025-06-13 | 山东量子科学技术研究院有限公司 | 基于量子安全的快速二次身份认证方法及系统 |
CN115001658A (zh) * | 2022-04-06 | 2022-09-02 | 八维通科技有限公司 | 在非稳定网络环境下可信的地铁身份认证和存取控制方法 |
CN115001658B (zh) * | 2022-04-06 | 2024-11-12 | 八维通科技有限公司 | 在非稳定网络环境下可信的地铁身份认证和存取控制方法 |
CN114866255A (zh) * | 2022-04-28 | 2022-08-05 | 西安电子科技大学 | 以用户为中心面向多idp聚合的多因素认证方法 |
CN114866255B (zh) * | 2022-04-28 | 2023-09-08 | 西安电子科技大学 | 以用户为中心面向多idp聚合的多因素认证方法 |
CN116192474A (zh) * | 2023-02-01 | 2023-05-30 | 中安云科科技发展(山东)有限公司 | 一种基于国密算法的api接口高性能强身份认证的方法 |
CN116566618A (zh) * | 2023-05-18 | 2023-08-08 | 西安电子科技大学 | 基于在线离线Paillier同态加密的生物特征认证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113486324B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10027654B2 (en) | Method for authenticating a client device to a server using a secret element | |
US12206763B2 (en) | Secret material exchange and authentication cryptography operations | |
CN113486324B (zh) | 基于sm2算法实现三因素匿名身份认证的方法 | |
US10211981B2 (en) | System and method for generating a server-assisted strong password from a weak secret | |
CN107196763B (zh) | Sm2算法协同签名及解密方法、装置与系统 | |
EP3146670B1 (en) | Network authentication system with dynamic key generation | |
EP3532972B1 (en) | Authentication method and system | |
US9185111B2 (en) | Cryptographic authentication techniques for mobile devices | |
CN107948189A (zh) | 非对称密码身份鉴别方法、装置、计算机设备及存储介质 | |
CN107395368B (zh) | 无介质环境中的数字签名方法及解封装方法与解密方法 | |
WO2017195886A1 (ja) | 認証システム、認証方法およびプログラム | |
JP5224481B2 (ja) | パスワード認証方法 | |
CN105391554B (zh) | 一种采用密文实现指纹匹配的方法和系统 | |
JP2001313634A (ja) | 通信方法 | |
CN110401615A (zh) | 一种身份认证方法、装置、设备、系统及可读存储介质 | |
CN101626364A (zh) | 一类可基于口令、抗秘密数据泄露的认证和密钥交换方法 | |
Tbatou et al. | A New Mutuel Kerberos Authentication Protocol for Distributed Systems. | |
Tian et al. | Pribioauth: Privacy-preserving biometric-based remote user authentication | |
JP2017524306A (ja) | 暗号化操作における悪意のある変更に対する保護 | |
CN113014376B (zh) | 一种用户与服务器之间安全认证的方法 | |
CN106230840B (zh) | 一种高安全性的口令认证方法 | |
CN109412799B (zh) | 一种生成本地密钥的系统及其方法 | |
Yang et al. | Security of improvement on methods for protecting password transmission | |
Sonwanshi et al. | An efficient smart card based remote user authentication scheme using hash function | |
CN115237943B (zh) | 基于加密数据的数据检索方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |