1、方法创新科技创新与应用Technology Innovation and Application2023 年 29 期基于 SM9 算法的互联网身份认证技术郭嘉,刘廷舰,董峰伟(三未信安科技股份有限公司,北京 100000)得益于 5G 通信技术及物联网、互联网技术的发展,我国已经正式进入了“万物互联”的时代。新时期背景下人们在享受物联网、互联网技术所带来的便利的同时,也在承受信息泄露、丢失风险所带来的挑战。传统互联网环境下的身份认证模式需要不同用户基于不同服务器的需求,记忆并应用多种口令,这导致传统的身份认证过程中极容易出现因口令泄漏所引发的安全问题。想要从根源上避免诸如此类的问题,便可以基
2、于SM9 算法以及去中心化的认证机制,在降低认证代价的基础上全面避免认证节点堵塞的问题,还可以有效优化认证过程的隐私性与效率。1SM9算法概念解析1.1专业术语解析SM9 算法是基于 256 位 BN 椭圆曲线的公钥加密算法,尽管其相较于传统的国家商用密钥而言做出了一定的创新,但其本质仍属于 IBE 机制1。本文所应用到的SM9 算法相关专业术语如下。1.1.1标识(Identify)标识是指在用户实体无法否认的身份信息,即身份认证过程中唯一一个可以确定用户实体的信息,具有唯一性与绝对性2。如身份证号、电子邮件地址等,通常情况下标识会以 ID 的缩写形式出现,用户 x、用户 y 可以利用第一作
3、者简介:郭嘉(1996-),男,售前经理。研究方向为基于加密的密码安全技术。摘要:SM9 算法是我国现有商用密码体系中相对安全、高效的密码体制。为充分发挥 SM9 算法的优势,优化传统身份认证技术方案所存在的负面问题,进一步优化线上交易、企业工作交接等场景的隐私性与安全性。该研究采用理论研究与实践论证的方式,在对 SM9 算法的概念进行解析后,设定一种基于区块链的去中心化身份认证技术方案,重点分析该方案的身份认证模式及密钥管理方案,并在最后论证该方案的安全性及运行效率。该互联网身份认证技术方案在安全性与效率性方面具备一定的优势,能够满足当前社会环境中绝大部分的线上对接身份认证需求,且区块链数据
4、存在不可篡改的形式,因此,在区块链技术以及 SM9 算法的双向加持下,该互联网身份认证技术方案的安全性得到进一步优化,具备深入研究与推广的价值。关键词:SM9 算法;互联网;身份认证;区块链;密钥中图分类号院TN918.4文献标志码院A文章编号院2095-2945渊2023冤29-0137-04Abstract:SM9 algorithm is a relatively secure and efficient cryptosystem in the existing commercial cryptosystem in China.Inorder to give full play to t
5、he advantages of SM9 algorithm,optimize the negative problems of traditional identity authenticationtechnology,and further optimize the privacy and security of online transactions,enterprise work handover and other scenarios.Thisresearch adopts the way of theoretical research and practical demonstra
6、tion.After analyzing the concept of SM9 algorithm,thispaper sets up a decentralized identity authentication scheme based on block chain,focuses on the identity authentication mode andsecret key management scheme of the scheme,and finally demonstrates the security and operation efficiency of the sche
7、me.However,the Internet identity authentication scheme has certain advantages in terms of security and efficiency,and can meet mostof the online docking authentication needs in the current social environment,and the block chain data has an untampered form.Therefore,under the two-way support of block
8、 chain technology and SM9 algorithm,thesecurity of the Internet identityauthentication scheme has been further optimized,with the value of in-depth research and promotion.Keywords:SM9 algorithm;Internet;identity authentication;blockchain;secret keyDOI:10.19981/j.CN23-1581/G3.2023.29.033137-2023 年 29
9、 期方法创新科技创新与应用Technology Innovation and ApplicationUi用户的标识符IDIIGC 的身份标识符PkIIGC 的公钥SkIIGC 的私钥IdI用户的身份标识符SkI用户的私钥T密钥的有效期IDx、IDy的形式代替。1.1.2主密钥(Master Key)可以将其理解为标识密钥分层机构中最重要、最顶层的密钥,应用中通常会分为主公钥以及主私钥 2 个模块。其中,主公钥面向全部用户,主私钥则只需要由密钥生成中心(Key General Center,简称 KGC)进行单独保存,以此维护其私密性,并且在后续的流程中,KGC 会根据用户的标识及主私钥生成具有
10、针对性的用户密钥(User Key)3。1.2公钥加密方案解析设定 P1为椭圆曲线假发循环群 G1的生成元,则P2为椭圆曲线加法循环群 G2的生成元;H()代表Hash 函数;Enc()及 Dec()依次对应分组加密与分组解密的运算模式;KDF()是密钥推导过程中涉及的函数;MAC()是身份认证过程中携带密钥的认证消息编码;e()是双线性对。综上,基于本次研究的 SM9 密钥加密算法如下。假设淤与于分别为身份认证流程中的信息发送者及信息接收者,则身份认证过程中的加密流程如下。首先是密钥生成:KGC 产生的随机数 ke沂1,N-1作为加密主私钥,计算 Ppub-e=keP1为加密主公钥、(ke,
11、Ppub-e)则为加密主密钥对;用户于的标识为 ID于,则为用户于所生成的加密私钥为 de于,KGC 在有限域 FN上计算 t1=H1(ID于,N)+ke,t2=ke t1-1,得到 de于=t2P2;其次是加密过程:为了加密消息明文 M,淤需要执行以下步骤。1)计算 Q于=H1(ID于攒攒h ID,N)P1+Ppub-e;2)选择随机数 r沂1,N-1;3)计算 C1=rQ于,g=e(Ppub-e,P2),w=gr;4)计算 K=KDF(C1攒攒w攒攒ID于);5)按加密明文的分类方法进行计算,在采用序列密码方式加密的情况下,则计算 C2=M+K;在采用分组密码方式加密的情况下,则计算 C2
12、=Enc(K,M);6)计算 C3=MAC(K,C2),得到密文为 C=C1攒攒C2攒攒C3。最后是解密过程:针对密文 C=C1攒攒C2攒攒C3,于的解密过程如下。1)计算 w忆=e(C1,de于);2)计算 K忆=KDF(C1攒攒w忆攒攒ID于);3)按加密明文方法的不同进行解密,在采用序列密码方式加密的情况下,则计算 M忆=C2+K1;在采用分组密码方式加密的情况下,则计算 M忆=Dec(K1忆,C2);4)计算 u=MAC(K2忆,C2),假设 u=C3,则输出明文 M忆,否则报错。1.3SM9 数字签名算法设淤与于分别对应签名方以及验证方,则基于 SM9的数字签名过程如下。首先是密钥生
13、成:KGC 产生的随机数 ke沂1,N-1作为加秘主私钥,计算 Ppub-s=keP1为加密主公钥、(ke,Ppub-s)则为加密主密钥对;签名方淤的标识为 ID淤,则为用户于所生成的加密私钥为 de淤,KGC 在有限域 FN上计算 t1=H1(ID于,N)+ke,t2=ke t1-1,得到 de淤=t2P2。其次是签名过程:假设有待签名的消息为 A,则淤的签名过程如下。1)计算 g1=(Ppub-s,P2);2)选择随机数 r沂1,N-1;3)计算 w=gr,h=H(M攒攒w,N),l=(r-h)modN;4)计算 S=lde淤,则 A 的签名为(h,S)。最后是验证过程:为验证消息 M忆的
14、签名(h忆,S忆),于需要执行下述过程。1)计算 g1=(Ppub-s,P2);2)计算 t=g1h忆,h1=H(ID淤,N);3)计算 P=h1P1+Ppub-s,u=e(P,S忆),w忆=u t;4)计算 h2=H2(M忆攒攒w忆,N),假设 h2=h忆,则签名验证通过,反之失败4。2基于SM9算法的互联网身份认证实现本文涉及的符号定义如图 1 所示。图 1符号定义2.1参数初始化由于本次技术方案重点采用了 MS9 的公钥计算模式,因此在完成初始化参数之前,需要确定基点 P1沂G1,P2沂G2。将这一过程中IGC所产生的随机数集SkI沂1,N-1定义为私钥,而后设 GI中包含的元素 PkI
15、沂SkIPI为公138-方法创新科技创新与应用Technology Innovation and Application2023 年 29 期钥。由此,可以确定公私密钥对为(SkI,PkI)5。后续过程中,IGC 会公开 PkI同时将 SkI私钥存储于数据库之中。为保障能够充分发挥 SM9 算法的优势,IGC 应该基于IdI生成与其相对应的私钥 SkI,而后在有限域FN之上完成 t1=H(IdI,N)+SkI及 t2=SkI t1-1modN 的计算,最终得到 SkI=t2P2。这一过程如图 2 所示,其中输入为空,输出为生成的公钥 PkI及公钥的有效期限,同时对这一流程进行签名。参数初始化的
16、流程形式如图 2 所示。图 2参数初始化的流程形式2.2生成用户身份标识用户 Ui在完成注册操作并认证成功后,IGC 会为该用户生成能代表其身份且具有唯一性的 Idi及 Ski分别作为该用户的公钥与私钥6。同参数初始化过程一般,IGC 会在有限域 FN之上完成 t1=H(Idi,N)+Ski以及t2=Skiti-1modN 的计算,进而得到 Ski=t2P2。为保障用户的隐私性,这一过程将采用离线模式,因此可以并保障IGC 所反馈给用户的信息不会泄露,同时还会将此作为身份认证信息利用共识机制上传于区块链之中,以满足用户后续的登录与验证行为7。2.3密钥更新在用户有更新密钥的需求时,用户自身会充
17、当IGC 的角色进行更新流程8。即用户通过指定的操作在相关系统中选择随机数 k沂1,N-1作为这次更新活动的私钥。而后系统会自动计算 G1中的元素 Pki=kP1作为公钥。并在有限域 FN之上完成 t1=H(IdI,N)+k 以及t2=k t1-1modN 的计算,进而得到 Ski=t2P2。这一过程之后用户的基础身份信息不会发生改变,并且更新后的私钥为 Ski,其参数为 Pki,流程如图 3 所示。这一流程中需要输入索引以及 Hash 值,并输出密钥更新后的参数 Pki及密钥的有效时间,进一步利用未更新之前的密钥对这一流程进行签名9。图 3用户密钥更新形式2.4密钥更换身份认证过程中存在因用
18、户自身遗忘、泄漏密钥进而导致其无法更新密钥的情况。因此需要向 IGC 主动发出更换密钥的申请,该过程与用户身份标识的过程存在相似性10。用户的身份标识保持不变,在 IGC 接收到用户的更换密钥申请后,其会在有限域 FN之上完成 t1=H(IdI,N)+Ski以及 t2=Skit1-1modN 的计算,进而得到 Ski=t2P2。具体流程如图 4 所示。图 4用户密钥更换形式2.5身份信息更换在用户需要更换其自身的身份标识以更好地进行身份认证活动时,也同样需要向 IGC 发出更换身份信息的申请。IGC 在接收申请后,会结合用户的需求为其重新生成一份具有唯一标识的身份标识符以及 Ski作为其公钥与
19、私钥。首先需要输入索引及 Hash 值,用以在用户正式更换身份标识之前明确相关参数所在的位置,而后结合生成更换密钥用户身份标识IGC公钥密钥有效期输出索引/Hash值输入签名生成身份标识输出索引/Hash值输入签名用户身份标识IGC公钥密钥有效期成功初始化基础建档输入erp签名空白139-2023 年 29 期方法创新科技创新与应用Technology Innovation and Application用户需求输出身份标识以及参数、有效期限等,最后对本流程进行签名。如若用户想要注销其身份信息,只需要将输出区域设置为空白即可,如图 5 所示。图 5用户注销身份信息形式3安全性及效率分析首先,对
20、用户口令安全方面进行分析。该技术方案中用户在不同服务器上进行身份认证的情况下,需要使用相同的口令以及不同的随机数,进一步利用该过程中所生成的 Hash 值进行身份认证,因此相关用户在不同服务器系统中只需要记住统一的口令便可完成身份证操作。在有重新注册、更换终端设备等需求的情况下,只需使用统一的口令,便可对所有系统进行更新处理。其次,对用户丢失终端的安全隐患进行分析。本技术方案中储存在用户终端设备上的随机数、私钥等信息都是经过特殊加密处理后的数据。假设存在用户终端设备丢失的情况,只要其他人无法提供正确的口令,便无法破解终端上所储存的用户私密信息。因此,即使在用户终端设备丢失的情况下,该技术方案仍
21、可抵御口令猜测攻击、信息遗失等安全隐患,全面保护用户身份认证过程的安全性与隐私性。最后,是他人仿冒用户身份进行认证方面的安全性分析。该技术方案中所发起的身份认证申请过程中的所有信息都是经过发起方数字签名及接收方公钥加密的,因此,不存在他人利用仿冒用户身份标识的情况完成身份认证。如果存在用户终端设备丢失,且他人仿冒用户身份进行验证的情况,只要他人在规定次数内没有输入正确的口令,该系统设备便会自动锁定相关程序应用,因此,他人无法仿冒用户的真实身份进行认证。同时,如上文所述,该技术方案存在一定的错误预设次数,这为用户的身份认证过程提供了一定的容错率,即使用户存在遗忘相关信息的情况,只要用户能够在规定
22、的次数输入正确的口令,便能够完成身份认证。4结束语综上所述,本次研究基于 SM9 算法,进一步利用了区块链技术的优势,整理出了一种更具隐私性与效率性的互联网身份认证技术方案以及其配套的密钥管理方案,重点解决了既有 SM9 算法中密钥更新的困境。采用本技术方案进行互联网身份认证的过程中,用户仅仅需要在首次注册后有第三方可信任 IGC 为其生成独有的身份认证标识以及密钥,在后续的过程中便可以完全由用户自行操作,不会过度依赖IGC。并且后续过程中用户的交易形式、交流内容等都会储存于区块链之上,利用共识机制保障相关数据的安全性与真实可信性。此次提出的身份认证方案基本框架具有一定的推广与深入研究价值,未
23、来可进一步加深研究,从而实现其在更广泛场景中的应用。参考文献院1喇元,赵继光,张伟.基于 SM9 门限签名的电力终端安全认证方案J.电力科学与技术学报,2022,37(4):183-188,226.2郭辉,罗勇,郭晓潞.基于国密算法的车载以太网控制器身份认证方法J.网络与信息安全学报,2022,8(6):20-28.3韩高榕.远程教育中基于脑电的身份认证和教学效果评估方案研究D.南京:南京邮电大学,2023.4冯思琦,宋杰.身份认证服务视角下规范人像信息应用对策研究J.信息安全研究,2022,8(12):1209-1213.5 RAO B D,JAYARAMAN R.A novel quant
24、um identity au原thentication protocol without entanglement and preserving pre-shared key informationJ.Quantum Information Processing,2023,22(2):47-52.6方婷,王晓华,杨敏.基于 SM9 算法的跨区域医疗协同双向身份验证方案J.计算机系统应用,2022,31(5):124-130.7张柁苧,王雄,池亚平.基于 SM9 的 OpenStack 双向认证方案研究与设计J.北京电子科技学院学报,2021,29(4):45-50.8廖会敏,俞果,班国民,等.基于国密 SM9 算法的电力物联网身份认证技术研究J.山东电力技术,2020,47(10):1-5.9王鑫,海军,汤凯,等.基于商密 SM9 算法的安全高效数据采集网关研究J.电力安全技术,2018,20(11):42-46.10翟运开,桑青原,石金铭,等.基于区块链的互联网医疗身份认证系统设计及应用J.中国医院管理,2022,42(11):23-26,30.更换身份信息空白输出索引/Hash值输入签名140-