CN115694829A - 一种基于sm2椭圆曲线的离线身份认证令牌生成方法及系统 - Google Patents

一种基于sm2椭圆曲线的离线身份认证令牌生成方法及系统 Download PDF

Info

Publication number
CN115694829A
CN115694829A CN202211189753.2A CN202211189753A CN115694829A CN 115694829 A CN115694829 A CN 115694829A CN 202211189753 A CN202211189753 A CN 202211189753A CN 115694829 A CN115694829 A CN 115694829A
Authority
CN
China
Prior art keywords
token
identity authentication
elliptic curve
content
key
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.)
Pending
Application number
CN202211189753.2A
Other languages
English (en)
Inventor
宁红宙
赵永宽
王永宝
魏国
张玮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisino Corp
Original Assignee
Aisino Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aisino Corp filed Critical Aisino Corp
Priority to CN202211189753.2A priority Critical patent/CN115694829A/zh
Publication of CN115694829A publication Critical patent/CN115694829A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于SM2椭圆曲线的离线身份认证令牌生成方法及系统,其中方法包括:基于获取的用户信息、共享信息以及令牌参数,生成令牌内容;基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容;基于身份认证系统私钥对所述加密令牌内容进行签名,并将签名后的令牌发送至用户端;基于获取的身份认证系统公钥对用户端的令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥解密令牌内容,当所述签名以及解密出的令牌内容通过认证时,所述令牌通过验证。

Description

一种基于SM2椭圆曲线的离线身份认证令牌生成方法及系统
技术领域
本发明涉及信息技术安全技术领域,更具体地,涉及一种基于SM2椭圆曲线的离线身份认证令牌生成方法及系统。
背景技术
随着互联网应用、移动互联网应用的加速推进,各类大型应用系统对身份认证提出了更为专业的要求。一方面要求身份认证的类型和手段多样化,以满足不同应用场景的需求;另一方要求身份认证同时具备实名特性和业务的匿名特性。因此身份认证逐步由原来业务系统自带的身份认证模块,演化为专有的身份认证系统,为各类应用系统提供专业的身份认证服务,以达到身份认证手段的多样化、身份的实名化、业务操作的匿名化等需求。
在身份认证过程中,经常需要以令牌的形式在身份认证系统、用户、应用系统三者之间传递用户认证的信息,以便应用系统能通过这些信息确定用户身份的真实性与有效性。现有令牌存在如下弱点:
应用系统在对令牌实施验证时需要交由身份认证系统来处理,因此需要保障应用系统与身份认证系统的网络连通性。同时也意味着,在多个应用系统业务处理高峰期,会对身份认证系统产生较大的认证工作负荷。
应用系统与身份认证系统之间通过共享密钥来保障认证过程的安全性。应用系统共享密钥的泄密会造成整个认证体系虚假令牌的产生,使令牌失去防伪特性。
现有技术,(申请号CN201711098089.X)提供了一种基于令牌数字签名的身份认证方法及系统,包括如下步骤:客户端发起请求;服务器端检测模块检测接收到的请求信息没有携带令牌,返回模块返回错误信息,提示用户重新认证;服务器端检测模块检测接收到的请求信息携带令牌,验证模块对数字签名进行验证,若数字签名合法,服务器解密模块利用私钥对令牌内容进行解密,验证模块验证令牌内容的合法性,获取数据进行后续操作。然而,现有技术中的令牌使用了公钥密钥技术进行签名和加密,以达到令牌的保密性和防伪性目的,但是现有技术中对具体的令牌进行加密和签名的细节操作并未给出实际可操作的方法,也未给出具体的令牌产生过程的方法。
因此,需要一种技术,以基于SM2椭圆曲线生成离线身份认证令牌。
发明内容
本发明技术方案提供一种基于SM2椭圆曲线的离线身份认证令牌生成方法及系统,以解决如何基于SM2椭圆曲线的生成离线身份认证令牌的问题。
为了解决上述问题,本发明提供了一种基于SM2椭圆曲线的离线身份认证令牌生成方法,所述方法包括:
基于获取的用户信息、共享信息以及令牌参数,生成令牌内容;
基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容;
基于身份认证系统私钥对所述加密令牌内容进行签名,并将签名后的令牌发送至用户端;
基于获取的身份认证系统公钥对用户端的令牌中的签名进行验证;基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥解密令牌内容,当所述签名以及解密出的令牌内容通过认证时,所述令牌通过验证。
优选地,在通过身份认证系统基于获取的用户信息、共享信息以及令牌参数,生成令牌内容之前,还包括:
生成身份认证系统SM2椭圆曲线密钥对(ds,Ps),其中ds为身份认证系统私钥,Ps为身份认证系统公钥;
生成应用系统SM2椭圆曲线密钥对(da,Pa),其中,da为应用系统私钥,Pa为应用系统公钥;
将身份认证系统公钥Ps发送至所述应用系统;
将应用系统公钥Pa发送至所述身份认证系统;
将所述共享信息发送至所述身份认证系统。
优选地,所述基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容,包括:
获取随机数,基于所述随机数和椭圆曲线的基点,计算椭圆曲线随机点;以及基于所述随机数和应用系统公钥计算椭圆曲线密钥点;
基于所述椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容。
优选地,还包括:
将所述椭圆曲线随机点、加密令牌内容以签名后的令牌发送至应用系统。
优选地,基于获取的身份认证系统公钥对所述令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥解密令牌内容,当所述签名以及解密出的令牌内容通过认证时,所述令牌通过验证,包括:
基于身份认证系统公钥对签名进行验证;
基于应用系统私钥及所述椭圆曲线随机点计算椭圆曲线密钥点;
基于所述椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并所述一次性加密密钥对所述令牌内容进行解密,获取解密后的令牌内容;
基于本地时间判断所述令牌内容中的时间参数的有效性,以及所述令牌内容中的共享信息是否与本地保存的共享信息一致;当所述时间参数有效以及共享信息与本地保存的共享信息一致时,所述令牌通过验证。
基于本发明的另一方面,本发明提供一种基于SM2椭圆曲线的离线身份认证令牌生成系统,所述系统包括:
身份认证系统,用于基于获取的用户信息、共享信息以及令牌参数,生成令牌内容;基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容;基于身份认证系统私钥对所述加密令牌内容进行签名,并将签名后的令牌发送至用户端;
应用系统,用于基于获取的身份认证系统公钥对用户端的令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥解密令牌内容,当所述签名以及解密出的令牌内容通过认证时,所述令牌通过验证。
优选地,所述身份认证系统还用于,生成身份认证系统SM2椭圆曲线密钥对(ds,Ps),其中ds为身份认证系统私钥,Ps为身份认证系统公钥;
所述应用系统还用于生成应用系统SM2椭圆曲线密钥对(da,Pa),其中,da为应用系统私钥,Pa为应用系统公钥;
身份证系统将身份认证系统公钥Ps发送至所述应用系统;
应用系统将应用系统公钥Pa发送至所述身份认证系统;
应用系统将所述共享信息发送至所述身份认证系统。
优选地,所述身份认证系统用于,基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容,还用于:
通过身份认证系统获取随机数,基于所述随机数和椭圆曲线的基点,计算椭圆曲线随机点;以及基于所述随机数和应用系统公钥计算椭圆曲线密钥点;
通过身份认证系统基于所述椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容。
优选地,所述身份认证系统还用于:
将所述椭圆曲线随机点、加密令牌内容以签名后的令牌发送至应用系统。
优选地,所述应用系统用于,基于获取的身份认证系统公钥对所述令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥解密令牌内容,当所述签名以及解密出的令牌内容通过认证时,所述令牌通过验证,还用于:
通过应用系统基于身份认证系统公钥对签名进行验证;
通过应用系统基于应用系统私钥及所述椭圆曲线随机点计算椭圆曲线密钥点;
通过应用系统基于所述椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并所述一次性加密密钥对所述令牌内容进行解密,获取解密后的令牌内容;
通过应用系统基于本地时间判断所述令牌内容中的时间参数的有效性,以及所述令牌内容中的共享信息是否与本地保存的共享信息一致;当所述时间参数有效以及共享信息与本地保存的共享信息一致时,所述令牌通过验证。
本发明技术方案涉及一种基于SM2椭圆曲线的离线身份认证令牌生成方法及系统,其中方法包括:通过身份认证系统基于获取的用户信息、共享信息以及令牌参数,生成令牌内容;通过身份认证系统基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥对令牌内容进行加密,生成加密令牌内容;通过身份认证系统基于身份认证系统私钥对加密令牌内容进行签名,并将签名后的令牌发送至用户端;通过应用系统基于获取的身份认证系统公钥对用户端的令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥解密令牌内容,当签名以及解密出的令牌内容通过认证时,令牌通过验证。本发明技术方案利用服务端加解密技术对用户的认证和状态信息进行管理和操作,服务器上不存储任何相关信息,保证安全性和提升效率。本发明技术方案以SM2椭圆曲线公钥密码算法为基础,在令牌产生过程中引入公钥密码算法,克服因共享密钥泄密而带来的虚假令牌问题。本发明技术方案同时采用SM2公钥密码算法特有的随机特性对用户信息进行加密和签名处理,形成一次一密的保密令牌,保障令牌的随机性、唯一性、防伪性与防篡改性,减少重放攻击,且只有特定应用系统才能解开,实现了令牌认证的离线特性,可减轻身份认证系统的认证业务负担,降低应用系统与身份认证系统网络连通性需求。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明优选实施方式的一种基于SM2椭圆曲线的离线身份认证令牌生成方法流程图;以及
图2为根据本发明优选实施方式的一种基于SM2椭圆曲线的离线身份认证令牌生成系统结构图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为根据本发明优选实施方式的一种基于SM2椭圆曲线的离线身份认证令牌生成方法流程图。
本发明提供一种基于SM2椭圆曲线的离线身份认证令牌方法与系统,系统涉及身份认证系统、应用系统和用户三方,如图2所示。本发明中,身份认证系统与应用系统需事先共享一些信息,用户在身份认证系统通过认证后会获得令牌,用户在使用应用系统前把令牌提交给应用系统,应用系统验证令牌通过后可允许用户使用应用系统。
为了便于本发明实施方式的描述,给出如下符号表示与说明。
本发明身份认证系统的公钥对为(ds,Ps),其中ds为身份认证系统的私钥,需要保密;Ps为身份认证系统的公钥,可公开。
本发明应用系统的公钥对为(da,Pa),其中da为应用系统的私钥,需要保密;Pa为应用系统的公钥,可公开。
应用系统与身份认证系统之间的共享信息用SI表示,且SI要保密。
用户相关信息用USERINFO表示,令牌的有效期用DATE表示。||表示信息连接。
令牌从产生到使用包含:系统初始化、认证令牌产生、认证令牌验证三个过程。
如图1所示,本发明提供一种基于SM2椭圆曲线的离线身份认证令牌生成方法,方法包括:
步骤101:通过身份认证系统基于获取的用户信息、共享信息以及令牌参数,生成令牌内容;
优选地,在通过身份认证系统基于获取的用户信息、共享信息以及令牌参数,生成令牌内容之前,还包括:
通过身份认证系统生成身份认证系统SM2椭圆曲线密钥对(ds,Ps),其中ds为身份认证系统私钥,Ps为身份认证系统公钥;
通过应用系统生成应用系统SM2椭圆曲线密钥对(da,Pa),其中,da为应用系统私钥,Pa为应用系统公钥;
通过身份证系统将身份认证系统公钥Ps发送至应用系统;
通过应用系统将应用系统公钥Pa发送至身份认证系统;
通过应用系统将共享信息发送至身份认证系统。
本发明中,系统初始化是指身份认证系统与应用系统之间协商共享信息和预置密钥的过程。具体如下:
身份认证系统产生自己的SM2椭圆曲线密钥对(ds,Ps),应用系统产生自己的SM2椭圆曲线密钥对(da,Pa)。
身份认证系统与应用系统交换各自的公钥Ps和Pa,并保存。
应用系统在身份认证系统中预置共享信息SI。共享信息需保密只能应用系统和身份认证系统知道。
本发明的认证令牌产生过程是指用户经过身份认证系统认证后,身份认证系统为用户产生代表用户身份的一次一密的加密令牌,用于用户在应用系统的身份鉴别。具体过程如下:
身份认证系统取得用户信息USERINFO、应用系统共享信息SI和令牌有效期DATE参数,形成令牌内容:TOKENINFO=USERINFO||SI||DATE,令牌内容的长度为plen。
步骤102:通过身份认证系统基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥对令牌内容进行加密,生成加密令牌内容;
优选地,通过身份认证系统基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥对令牌内容进行加密,生成加密令牌内容,包括:
通过身份认证系统获取随机数,基于随机数和椭圆曲线的基点,计算椭圆曲线随机点;以及基于随机数和应用系统公钥计算椭圆曲线密钥点;
通过身份认证系统基于椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并一次性加密密钥对令牌内容进行加密,生成加密令牌内容。
本发明中的身份认证系统取得随机数k∈[1,n-1],其中n是SM2椭圆曲线的阶。
身份认证系统计算椭圆曲线随机点C1=k·G=(x1,y1),其中G是椭圆曲线的基点。
身份认证系统计算椭圆曲线密钥点C2=k·Pa=(x2,y2),其中Pa是应用系统的公钥。
身份认证系统计算一次一密的加密密钥t=KDF(x2||y2,plen),其中KDF函数为SM2椭圆曲线公钥密码算法中的密钥派生函数。
身份认证系统计算加密令牌内容
Figure BDA0003868859260000091
步骤103:通过身份认证系统基于身份认证系统私钥对加密令牌内容进行签名,并将签名后的令牌发送至用户端;
优选地,还包括:
将椭圆曲线随机点、加密令牌内容以签名后的令牌发送至应用系统。
本发明中的身份认证系统用自己的私钥ds对加密令牌内容C进行签名sig=SIG(C,ds),其中SIG函数为数字签名的生成算法。
身份认证系统输出令牌TOKEN=C1||C||sig。
本发明中由于C1、C、sig每次产生都具备随机性,因此生成的令牌具备随机性与唯一性。
步骤104:通过应用系统基于获取的身份认证系统公钥对用户端的令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥解密令牌内容,当签名以及解密出的令牌内容通过认证时,令牌通过验证。
优选地,通过应用系统基于获取的身份认证系统公钥对令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥解密令牌内容,当签名以及解密出的令牌内容通过认证时,令牌通过验证,包括:
通过应用系统基于身份认证系统公钥对签名进行验证;
通过应用系统基于应用系统私钥及椭圆曲线随机点计算椭圆曲线密钥点;
通过应用系统基于椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并一次性加密密钥对令牌内容进行解密,获取解密后的令牌内容;
通过应用系统基于本地时间判断令牌内容中的时间参数的有效性,以及令牌内容中的共享信息是否与本地保存的共享信息一致;当时间参数有效以及共享信息与本地保存的Ps对令牌中的签名sig进行验证VERI(sig,Ps),确定令牌不是伪造的,其中VERI函数为数字签名的验证算法。
应用系统用自己的私钥da计算椭圆曲线密钥点C2=da·C1=da·k·G=k·Pa=(x2,y2)。
应用系统计算一次性加密密钥t=KDF(x2||y2,clen),其中clen为C的长度。
应用系统解密出令牌内容
Figure BDA0003868859260000101
应用系统根据本地系统时间判断DATE的有效性,以及SI是否与本地保存内容相同,以确定令牌的有效性。
由于令牌的随机性和唯一性,应用系统可以利用此特性进行有效的重放攻击防范。
本发明涉及一种基于SM2椭圆曲线的离线身份认证令牌方法,本发明的方法通过采用SM2椭圆曲线的非对称密码技术,增强了令牌的防伪特性。同时,采用SM2椭圆曲线非对称加密技术,实现了令牌内容的随机加密,保障令牌一次一密,防止重放攻击;采用椭圆曲线非对称签名技术,保障令牌来源可信与签名值的随机性;采用共享信息技术进一步防止令牌篡改可被发现。
本发明通过使用基于SM2椭圆曲线的离线身份认证令牌,应用系统可实现对令牌的离线有效性检查,一方面可降低应用系统与身份认证系统的网络连通性要求;另一方面可有效降低身份认证系统参与令牌验证而带来的计算开销。同时由于椭圆曲线非对称密码技术的采用,实现了令牌的一次一密,使令牌具备随机性和唯一性,相对于对称密码技术的令牌系统,其令牌的防伪特性大大提升,不会因应用系统密钥管理不善泄漏而出现伪造的令牌。本发明可用于任何互联网提供第三方独立身份认证的系统。
以下对本发明实施方式进行举例说明:
1.系统初始化
1.1.身份认证系统产生自己的SM2椭圆曲线密钥对(ds,Ps);
1.2.应用系统产生自己的SM2椭圆曲线密钥对(da,Pa);
1.3.身份认证系统与应用系统交换各自的公钥Ps和Pa
1.4.应用系统在身份认证系统中预置共享信息SI。
2.认证令牌产生
2.1.身份认证系统取得用户信息USERINFO、应用系统共享信息SI和令牌有效期DATE参数,形成令牌内容:TOKENINFO=USERINFO||SI||DATE,令牌内容的长度为plen;
2.2.身份认证系统取得随机数k∈[1,n-1];
2.3.身份认证系统计算椭圆曲线随机点C1=k·G=(x1,y1);
2.4.身份认证系统计算椭圆曲线密钥点C2=k·Pa=(x2,y2);
2.5.身份认证系统计算一次性加密密钥t=KDF(x2||y2,plen);
2.6.身份认证系统计算加密令牌内容
Figure BDA0003868859260000111
2.7.身份认证系统用自己的私钥ds对加密令牌内容C进行签名sig=SIG(C,ds);
2.8.身份认证系统输出令牌TOKEN=C1||C||sig;
3.认证令牌验证
3.1.应用系统用身份认证系统的公钥Ps对令牌中的签名sig进行验证VERI(sig,Ps),;验证成功则继续,否则令牌无效退出;
3.2.应用系统用自己的私钥da计算椭圆曲线密钥点C2=da·C1=(x2,y2);
3.3.应用系统计算一次性加密密钥t=KDF(x2||y2,clen);
3.4.应用系统解密出令牌内容
Figure BDA0003868859260000112
3.5.应用系统根据本地系统时间判断DATE的有效性,有效则继续,否则令牌无效退出;
3.6.应用系统比对SI是否与本地保存内容相同,相同则令牌有效,否则令牌无效退出。
本发明通过以上步骤,应用系统对身份认证令牌可实现离线的验证,且令牌具备随机、保密、防伪和防篡改的能力。
如图2所示,本发明提供一种基于SM2椭圆曲线的离线身份认证令牌生成系统,系统包括:
身份认证系统,用于基于获取的用户信息、共享信息以及令牌参数,生成令牌内容;基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥对令牌内容进行加密,生成加密令牌内容;基于身份认证系统私钥对加密令牌内容进行签名,并将签名后的令牌发送至用户端;
优选地,身份认证系统还用于,生成身份认证系统SM2椭圆曲线密钥对(ds,Ps),其中ds为身份认证系统私钥,Ps为身份认证系统公钥;
应用系统还用于生成应用系统SM2椭圆曲线密钥对(da,Pa),其中,da为应用系统私钥,Pa为应用系统公钥;
身份证系统将身份认证系统公钥Ps发送至应用系统;
应用系统将应用系统公钥Pa发送至身份认证系统;
应用系统将共享信息发送至身份认证系统。
优选地,身份认证系统用于,基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥对令牌内容进行加密,生成加密令牌内容,还用于:
通过身份认证系统获取随机数,基于随机数和椭圆曲线的基点,计算椭圆曲线随机点;以及基于随机数和应用系统公钥计算椭圆曲线密钥点;
通过身份认证系统基于椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并一次性加密密钥对令牌内容进行加密,生成加密令牌内容。
优选地,身份认证系统还用于:
将椭圆曲线随机点、加密令牌内容以签名后的令牌发送至应用系统。
应用系统,用于基于获取的身份认证系统公钥对用户端的令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥解密令牌内容,当签名以及解密出的令牌内容通过认证时,令牌通过验证。
优选地,应用系统用于,基于获取的身份认证系统公钥对令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于一次性加密密钥解密令牌内容,当签名以及解密出的令牌内容通过认证时,令牌通过验证,还用于:
通过应用系统基于身份认证系统公钥对签名进行验证;
通过应用系统基于应用系统私钥及椭圆曲线随机点计算椭圆曲线密钥点;
通过应用系统基于椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并一次性加密密钥对令牌内容进行解密,获取解密后的令牌内容;
通过应用系统基于本地时间判断令牌内容中的时间参数的有效性,以及令牌内容中的共享信息是否与本地保存的共享信息一致;当时间参数有效以及共享信息与本地保存的共享信息一致时,令牌通过验证。
本发明提供一种基于SM2椭圆曲线的离线身份认证令牌生成系统与本发明提供一种基于SM2椭圆曲线的离线身份认证令牌生成方法相对应,在此不再进行赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个//该[装置、组件等]”都被开放地解释为装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

Claims (10)

1.一种基于SM2椭圆曲线的离线身份认证令牌生成方法,所述方法包括:
基于获取的用户信息、共享信息以及令牌参数,生成令牌内容;
基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容;
基于身份认证系统私钥对所述加密令牌内容进行签名,并将签名后的令牌发送至用户端;
基于获取的身份认证系统公钥对用户端的令牌中的签名进行验证;
基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥解密令牌内容,当所述签名以及解密出的令牌内容通过认证时,所述令牌通过验证。
2.根据权利要求1所述的方法,在通过身份认证系统基于获取的用户信息、共享信息以及令牌参数,生成令牌内容之前,还包括:
生成身份认证系统SM2椭圆曲线密钥对(ds,Ps),其中ds为身份认证系统私钥,Ps为身份认证系统公钥;
生成应用系统SM2椭圆曲线密钥对(da,Pa),其中,da为应用系统私钥,Pa为应用系统公钥;
将身份认证系统公钥Ps发送至所述应用系统;
将应用系统公钥Pa发送至所述身份认证系统;
将所述共享信息发送至所述身份认证系统。
3.根据权利要求2所述的方法,所述通过身份认证系统基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容,包括:
获取随机数,基于所述随机数和椭圆曲线的基点,计算椭圆曲线随机点;以及基于所述随机数和应用系统公钥计算椭圆曲线密钥点;
基于所述椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容。
4.根据权利要求3所述的方法,还包括:
将所述椭圆曲线随机点、加密令牌内容以签名后的令牌发送至应用系统。
5.根据权利要求4所述的方法,所述基于获取的身份认证系统公钥对所述令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥解密令牌内容,当所述签名以及解密出的令牌内容通过认证时,所述令牌通过验证,包括:
基于身份认证系统公钥对签名进行验证;
基于应用系统私钥及所述椭圆曲线随机点计算椭圆曲线密钥点;
基于所述椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并所述一次性加密密钥对所述令牌内容进行解密,获取解密后的令牌内容;
基于本地时间判断所述令牌内容中的时间参数的有效性,以及所述令牌内容中的共享信息是否与本地保存的共享信息一致;当所述时间参数有效以及共享信息与本地保存的共享信息一致时,所述令牌通过验证。
6.一种基于SM2椭圆曲线的离线身份认证令牌生成系统,所述系统包括:
身份认证系统,用于基于获取的用户信息、共享信息以及令牌参数,生成令牌内容;基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容;基于身份认证系统私钥对所述加密令牌内容进行签名,并将签名后的令牌发送至用户端;
应用系统,用于基于获取的身份认证系统公钥对用户端的令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥解密令牌内容,当所述签名以及解密出的令牌内容通过认证时,所述令牌通过验证。
7.根据权利要求6所述的系统,所述身份认证系统还用于,生成身份认证系统SM2椭圆曲线密钥对(ds,Ps),其中ds为身份认证系统私钥,Ps为身份认证系统公钥;
所述应用系统还用于生成应用系统SM2椭圆曲线密钥对(da,Pa),其中,da为应用系统私钥,Pa为应用系统公钥;
身份证系统将身份认证系统公钥Ps发送至所述应用系统;
应用系统将应用系统公钥Pa发送至所述身份认证系统;
应用系统将所述共享信息发送至所述身份认证系统。
8.根据权利要求7所述的系统,所述身份认证系统用于,基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容,还用于:
通过身份认证系统获取随机数,基于所述随机数和椭圆曲线的基点,计算椭圆曲线随机点;以及基于所述随机数和应用系统公钥计算椭圆曲线密钥点;
通过身份认证系统基于所述椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并所述一次性加密密钥对所述令牌内容进行加密,生成加密令牌内容。
9.根据权利要求8所述的系统,所述身份认证系统还用于:
将所述椭圆曲线随机点、加密令牌内容以签名后的令牌发送至应用系统。
10.根据权利要求9所述的系统,所述应用系统用于,基于获取的身份认证系统公钥对所述令牌中的签名进行验证;以及基于椭圆曲线加密算法计算一次性加密密钥,基于所述一次性加密密钥解密令牌内容,当所述签名以及解密出的令牌内容通过认证时,所述令牌通过验证,还用于:
通过应用系统基于身份认证系统公钥对签名进行验证;
通过应用系统基于应用系统私钥及所述椭圆曲线随机点计算椭圆曲线密钥点;
通过应用系统基于所述椭圆曲线密钥点和令牌内容的长度计算一次性加密密钥,基于并所述一次性加密密钥对所述令牌内容进行解密,获取解密后的令牌内容;
通过应用系统基于本地时间判断所述令牌内容中的时间参数的有效性,以及所述令牌内容中的共享信息是否与本地保存的共享信息一致;当所述时间参数有效以及共享信息与本地保存的共享信息一致时,所述令牌通过验证。
CN202211189753.2A 2022-09-28 2022-09-28 一种基于sm2椭圆曲线的离线身份认证令牌生成方法及系统 Pending CN115694829A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211189753.2A CN115694829A (zh) 2022-09-28 2022-09-28 一种基于sm2椭圆曲线的离线身份认证令牌生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211189753.2A CN115694829A (zh) 2022-09-28 2022-09-28 一种基于sm2椭圆曲线的离线身份认证令牌生成方法及系统

Publications (1)

Publication Number Publication Date
CN115694829A true CN115694829A (zh) 2023-02-03

Family

ID=85063884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211189753.2A Pending CN115694829A (zh) 2022-09-28 2022-09-28 一种基于sm2椭圆曲线的离线身份认证令牌生成方法及系统

Country Status (1)

Country Link
CN (1) CN115694829A (zh)

Similar Documents

Publication Publication Date Title
US11323276B2 (en) Mutual authentication of confidential communication
EP3642997B1 (en) Secure communications providing forward secrecy
CN109714167B (zh) 适用于移动应用签名的身份认证与密钥协商方法及设备
CN112351037B (zh) 用于安全通信的信息处理方法及装置
CN114692218A (zh) 一种面向个人用户的电子签章方法、设备和系统
CN110958219A (zh) 一种面向医疗云共享数据的sm2代理重加密方法与装置
CN107294725A (zh) 一种多服务器环境下的三因素认证方法
CN103684798A (zh) 一种用于分布式用户服务间认证系统
CN116633530A (zh) 量子密钥传输方法、装置及系统
CN111245594B (zh) 一种基于同态运算的协同签名方法及系统
CN114697038A (zh) 一种抗量子攻击的电子签章方法和系统
CN110278073B (zh) 一种群组数字签名、验证方法及其设备和装置
CN113676330B (zh) 一种基于二级密钥的数字证书申请系统及方法
JP5393594B2 (ja) 効率的相互認証方法,プログラム,及び装置
EP3185504A1 (en) Security management system for securing a communication between a remote server and an electronic device
CN110572257B (zh) 基于身份的数据来源鉴别方法和系统
CN115694829A (zh) 一种基于sm2椭圆曲线的离线身份认证令牌生成方法及系统
CN114448636A (zh) 基于数字证书的抗量子计算数字货币系统及匿名通信方法
CN114091001B (zh) 协同认证方法、系统、装置及存储介质
CN114697040B (zh) 一种基于对称密钥的电子签章方法和系统
RU2771928C2 (ru) Безопасный обмен данными, обеспечивающий прямую секретность
CN117424694A (zh) 一种基于区块链的公司证书管理方法、装置及电子设备
CN117938363A (zh) 密钥生成方法、装置及系统
TW202319998A (zh) 使用多安全層級驗證客戶身分與交易服務之系統及方法
CN116707793A (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