CN117714074A - 基于tlcp的身份认证系统、方法、存储介质及电子设备 - Google Patents
基于tlcp的身份认证系统、方法、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117714074A CN117714074A CN202311763448.4A CN202311763448A CN117714074A CN 117714074 A CN117714074 A CN 117714074A CN 202311763448 A CN202311763448 A CN 202311763448A CN 117714074 A CN117714074 A CN 117714074A
- Authority
- CN
- China
- Prior art keywords
- client
- public key
- ring
- target
- signature
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012795 verification Methods 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请提供一种基于TLCP的身份认证系统、方法、存储介质及电子设备,涉及网络数据安全技术领域,该方法包括:客户端在与服务端的认证过程中,从服务端获取客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;客户端基于目标公钥集合、客户端对应的客户端私钥计算环画像,并基于环画像生成环签名,将环签名发送至服务端;服务端在接收到客户端发送的环签名的情况下,对环签名进行验证,并在验证成功后,完成对客户端的身份认证。本申请提供的基于TLCP的身份认证系统、方法、存储介质及电子设备,用于避免认证过程中客户端身份信息的泄露,提升客户端隐私保护等级。
Description
技术领域
本申请涉及网络数据安全技术领域,尤其涉及一种基于TLCP的身份认证系统、方法、存储介质及电子设备。
背景技术
传输层密码协议(Transport Layer Cryptography Protocol,TLCP)是一种基于国产商用密码算法的安全协议,用于保护网络数据的传输层的安全性和完整性。
然而,使用TLCP协议在客户端认证中必须使用证书,且由于证书会天然地暴露证书主体身份,客户端的真正实体信息会泄露给服务器,导致客户端能够被服务器追踪,客户端认证存在隐私安全问题。
基于此,急需一种身份认证方法,能够避免认证过程中客户端身份信息的泄露,提升客户端隐私保护等级。
发明内容
本申请的目的是提供一种基于TLCP的身份认证系统、方法、存储介质及电子设备,用于避免认证过程中客户端身份信息的泄露,提升客户端隐私保护等级。
本申请提供一种基于TLCP的身份认证系统,包括:
所述客户端,用于在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;所述客户端,还用于基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;所述服务端,用于在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。
可选地,所述客户端,具体用于将所述客户端私钥与所述预设哈希函数计算出的哈希值相乘,得到第一结果,并将所述第一结果与所述目标整数执行取模运算,得到所述环画像。
可选地,所述客户端,具体用于从所述目标公钥集合中随机选择包含多个公钥的所述公钥子集;所述客户端,具体还用于使用所述客户端的客户端私钥对待签名消息执行SM2签名,得到签名结果;所述客户端,具体还用于基于所述签名结果中的签名值与所述椭圆曲线的基点的乘积,计算第一标量;其中,所述第一标量为所述公钥子集指示的各个公钥的目标排列顺序中,与所述客户端公钥相邻的下一个第一公钥对应的标量。
可选地,所述客户端,具体用于生成所述公钥子集中除所述客户端公钥之外的其他公钥对应的第一随机数集合;所述客户端,具体还用于基于所述第一标量、所述第一随机数集合中的随机数、所述基点以及所述环画像,按照所述目标排列顺序递归计算所述公钥子集中各个公钥对应的标量。
可选地,所述客户端基于以下公式一计算各个公钥对应的标量:
ci+1=ti*G+ci*I*Ki (公式一)
其中,所述c为标量,t为随机数,G为所述基点,I为环画像,K为公钥,i=j+1,j+2,…n,1,2,…j-1;n为所述公钥子集中公钥的数量,j为所述公客户端公钥在所述公钥子集中的排序。
可选地,所述客户端,具体用于基于所述签名值、所述客户端私钥、所述客户端公钥对应的标量、所述环画像得到第二结果,并将所述第二结果与所述目标整数取模运算后,得到所述客户端公钥对应的随机数;所述客户端,具体用于基于将所述客户端公钥对应的随机数添加至所述第一随机数集合,得到第二随机数集合,并基于所述公钥子集、所述环画像以及所述第二随机数集合构建所述环签名。
可选地,所述客户端基于以下公式二计算所述客户端公钥对应的随机数:
tj=(s-cj*I*kj)mod q (公式二)
其中,s为所述签名值,kj为所述客户端私钥,cj为所述客户端公钥对应的标量,q为所述目标整数。
本申请还提供一种基于TLCP的身份认证方法,包括:
所述客户端在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;所述客户端基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;所述服务端在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。
可选地,所述客户端基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,包括:所述客户端将所述客户端私钥与所述预设哈希函数计算出的哈希值相乘,得到第一结果,并将所述第一结果与所述目标整数执行取模运算,得到所述环画像。
可选地,所述客户端基于所述环画像生成环签名,包括:所述客户端从所述目标公钥集合中随机选择包含多个公钥的所述公钥子集;所述客户端使用所述客户端的客户端私钥对待签名消息执行SM2签名,得到签名结果;所述客户端基于所述签名结果中的签名值与所述椭圆曲线的基点的乘积,计算第一标量;其中,所述第一标量为所述公钥子集指示的各个公钥的目标排列顺序中,与所述客户端公钥相邻的下一个第一公钥对应的标量。
可选地,所述客户端基于所述环画像生成环签名,包括:所述客户端生成所述公钥子集中除所述客户端公钥之外的其他公钥对应的第一随机数集合;所述客户端基于所述第一标量、所述第一随机数集合中的随机数、所述基点以及所述环画像,按照所述目标排列顺序递归计算所述公钥子集中各个公钥对应的标量。
可选地,所述客户端基于以下公式一计算各个公钥对应的标量:
ci+1=ti*G+ci*I*Ki (公式一)
其中,所述c为标量,t为随机数,G为所述基点,I为环画像,K为公钥,i=j+1,j+2,…n,1,2,…j-1;n为所述公钥子集中公钥的数量,j为所述公客户端公钥在所述公钥子集中的排序。
可选地,所述客户端基于所述环画像生成环签名,包括:所述客户端基于所述签名值、所述客户端私钥、所述客户端公钥对应的标量、所述环画像得到第二结果,并将所述第二结果与所述目标整数取模运算后,得到所述客户端公钥对应的随机数;所述客户端基于将所述客户端公钥对应的随机数添加至所述第一随机数集合,得到第二随机数集合,并基于所述公钥子集、所述环画像以及所述第二随机数集合构建所述环签名。
可选地,所述客户端基于以下公式二计算所述客户端公钥对应的随机数:
tj=(s-cj*I*kj)mod q (公式二)
其中,s为所述签名值,kj为所述客户端私钥,cj为所述客户端公钥对应的标量,q为所述目标整数。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述任一种所述基于TLCP的身份认证方法的步骤。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于TLCP的身份认证方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于TLCP的身份认证方法的步骤。
本申请提供的基于TLCP的身份认证系统、方法、存储介质及电子设备,首先,所述客户端,用于在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;之后,所述客户端,还用于基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;最后,所述服务端,用于在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。如此,通过基于SM2椭圆曲线的环签名,以及利用标准SM2签名结果得到最终的环签名结果,可以避免认证过程中客户端身份信息的泄露,提升客户端隐私保护等级。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的基于TLCP的身份认证系统的流程示意图之一;
图2是本申请提供的基于TLCP的身份认证系统的流程示意图之二;
图3是本申请提供的基于TLCP的身份认证系统的流程示意图之三;
图4是本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
以下针对本申请实施例所涉及的专业术语进行描述:
SSL/TLS:安全套接字层/传输层安全协议(Secure Sockets Layer/TransportLayer Security),一种基于加密的安全协议,用于保证网络通信的安全性。
TLCP:传输层密码协议(Transport Layer Cryptographic Protocol),标准GB/T38636—2020中定义,一种基于商密算法加密的安全协议,也可简称为商密SSL/TLS协议。
商密算法:一种商用密码算法,包括SM1、SM2、SM3、SM4、SM9等。PSK:预共享密钥(Pre-Shared Key,在通信双方提前共享的密钥。RSA:一种基于大数因式分解实现的非对称加密算法。SM2:一种基于SM2椭圆曲线实现的非对称加密算法,包含SM2签名验签、SM2密钥交换、SM2加解密算法,标准GB/T 32918—2016中定义。SM3:一种哈希算法,标准GB/T32905—2016中定义。SM4:一种分组密码算法,标准GB/T 32907—2016中定义。SM9:一种基于SM9椭圆曲线实现的非对称加密算法,标准GB/T 41389-2022中定义。CBC:用于加密的一种模式(Cipher Block Chaining)。GCM:用于认证加密的一种模式(Galois/CounterMode)。RTT:往返时间(Round-Trip Time),通信双方报文往返一次的时间。
零知识证明(Zero-Knowledge Proof):一方(证明者)向另一方(检验者)证明某命题的方法,特点是过程中除“该命题为真”之事外,不泄露任何资讯。
环签名:一种允许签名者从一个集合中选择任意的其他公钥,与自己的私钥一起生成一个签名,而不需要得到其他公钥的持有者的同意或协助。
针对相关技术中存在的上述技术问题,本申请实施例提供了一种基于TLCP的身份认证系统,如图1所示,该系统包括:客户端Client和服务端Server,本申请实施例提供的基于TLCP的身份认证系统,客户端认证使用环签名代替证书和证书签名,为客户端提供了一定的匿名性,提升客户端隐私;同时,使用基于SM2椭圆曲线的环签名,利用标准SM2签名结果得到最终的环签名结果,提升客户端兼容性,避免已有的客户端设备进行改造。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的基于TLCP的身份认证系统进行详细地说明。
如图1所示,为本申请实施例提供的一种基于TLCP的身份认证系统的注册阶段流程,客户端生成自己的密钥对(k,K),k为私钥,K为公钥,客户端必须安全妥善地保管自己的私钥k,客户端将公钥K发送到服务器进行注册,服务器根据客户端划分不同的群组,每个群组可最多包含N个客户端。服务器将客户端所在的群组GR返回给客户端,该群组内所有已注册的客户端公钥列表为PR={K1,K2,...,Km},其中m≤N。后续客户端认证过程中,仅注册通过的客户端即K∈PR才可认证成功。
如图2所示,为本申请实施例提供的一种基于TLCP的身份认证系统的认证阶段流程,主要包包括:
1、客户端发送ClientHello消息至服务器,包含客户端支持的版本、加密套件、扩展、随机数和密钥共享参数。signature_algorithms扩展中必须指定支持的证书签名算法列表,从SM2_SM3和SM9_SM3中选择。supported_groups扩展必须指定支持的曲线列表,从SM2和SM9中选择。key_share扩展包含使用的曲线以及临时公钥。ClientHello还应包含对应的群组GR。
2、服务器返回ServerHello消息至客户端,加密套件必须是″TLCP_SM4_GCM_SM3″。key_share扩展包含使用的曲线以及临时公钥和加密证书公钥,服务器必须配置加密证书。密钥协商使用SM2标准ECDHE密钥协商或SM9标准IBSDH密钥协商算法,客户端作为发起方,服务器作为接收方。
3、服务器返回CertificateRequest消息至客户端,服务器根据客户端传入的GR找到对应的群组内所有已注册的客户端公钥列表PR,将PR作为CertificateRequest消息返回至客户端。
4、服务器返回Certificate消息至客户端,服务器提供服务器的证书链和签名算法。服务器证书必须包含签名证书和加密证书,并且加密证书的公钥与ServerHello中key_share扩展的加密证书公钥一致。
5、服务器返回CertificateVerify消息至客户端,使用私钥对前面的所有消息进行签名,以证明服务器的身份。使用的签名算法必须是客户端ClientHello中支持的签名算法。
6、服务器返回Finished消息至客户端,使用协商的密钥对前面的所有消息进行加密,提示已完成服务器部分握手流程。
7、客户端对收到的服务器握手消息进行验证和处理,客户端不存在证书不需要发送Certificate消息,在CertificateVerify消息中使用环签名σ代替原标准协议的内容。
8、客户端发送Finished消息至服务器,使用协商的密钥对前面的所有消息进行加密,提示已完成客户端的握手流程。
9、服务器对客户端握手消息进行处理,验证客户端提供的环签名σ,认证通过后与客户端进行应用数据通信。
基于上述认证流程,本申请实施例提供的基于TLCP的身份认证系统,可以包括以下流程:
示例性地,所述客户端,用于在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合。
示例性地,所述客户端,还用于基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端。
其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。
示例性地,所述服务端,用于在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证。
具体地,所述客户端,具体用于将所述客户端私钥与所述预设哈希函数计算出的哈希值相乘,得到第一结果,并将所述第一结果与所述目标整数执行取模运算,得到所述环画像。
具体地,所述客户端,具体用于从所述目标公钥集合中随机选择包含多个公钥的所述公钥子集;所述客户端,具体还用于使用所述客户端的客户端私钥对待签名消息执行SM2签名,得到签名结果;所述客户端,具体还用于基于所述签名结果中的签名值与所述椭圆曲线的基点的乘积,计算第一标量;其中,所述第一标量为所述公钥子集指示的各个公钥的目标排列顺序中,与所述客户端公钥相邻的下一个第一公钥对应的标量。
具体地,所述客户端,具体用于生成所述公钥子集中除所述客户端公钥之外的其他公钥对应的第一随机数集合;所述客户端,具体还用于基于所述第一标量、所述第一随机数集合中的随机数、所述基点以及所述环画像,按照所述目标排列顺序递归计算所述公钥子集中各个公钥对应的标量。
需要说明的是,上述第一随机数集合中并未包含上述客户端公钥对应的随机数,该随机数会在后续步骤中计算得到。
具体地,所述客户端基于以下公式一计算各个公钥对应的标量:
ci+1=ti*G+ci*I*Ki (公式一)
其中,所述c为标量,t为随机数,G为所述基点,I为环画像,K为公钥,i=j+1,j+2,…n,1,2,…j-1;n为所述公钥子集中公钥的数量,j为所述公客户端公钥在所述公钥子集中的排序。
具体地,所述客户端,具体用于基于所述签名值、所述客户端私钥、所述客户端公钥对应的标量、所述环画像得到第二结果,并将所述第二结果与所述目标整数取模运算后,得到所述客户端公钥对应的随机数;所述客户端,具体用于基于将所述客户端公钥对应的随机数添加至所述第一随机数集合,得到第二随机数集合,并基于所述公钥子集、所述环画像以及所述第二随机数集合构建所述环签名。
具体地,所述客户端基于以下公式二计算所述客户端公钥对应的随机数:
tj=(s-cj*I*kj)mod q (公式二)
其中,s为所述签名值,kj为所述客户端私钥,cj为所述客户端公钥对应的标量,q为所述目标整数。
本申请实施例提供的基于TLCP的身份认证系统,首先,所述客户端,用于在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;之后,所述客户端,还用于基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;最后,所述服务端,用于在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。如此,通过基于SM2椭圆曲线的环签名,以及利用标准SM2签名结果得到最终的环签名结果,可以避免认证过程中客户端身份信息的泄露,提升客户端隐私保护等级。
下面对本申请提供的基于TLCP的身份认证方法进行描述,下文描述的与上文描述的基于TLCP的身份认证系统可相互对应参照。
图3为本申请实施例提供的基于TLCP的身份认证方法的流程示意图,如图3所示,包括以下步骤301至步骤303:
步骤301、所述客户端在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合。
示例性地,本申请实施例中的基于TLCP的身份认证方法,支持在SM2椭圆曲线上进行计算,并且环签名结果基于标准SM2签名结果(r,s)计算得到。
示例性地,SM2是一种基于椭圆曲线的公钥密码算法,它可以用于加密、解密、签名和验证数据。SM2签名结果是由两个整数r和s组成的,它们分别表示签名者的随机数和签名值。
示例性地,假设m是要签名的信息,签名者从已注册的公钥列表中随机选择一个子集R={K1,K2,…,Kn}是一组不同的公钥,kj是签名者与其公钥Kj∈R相对应的私钥,j是一个秘密索引,H是一个哈希函数,将输入数据映射为1至q的整数,其中q是椭圆曲线的阶。
步骤302、所述客户端基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端。
其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。
具体地,上述步骤302中计算环画像的步骤,还可以包括以下步骤302a:
步骤302a、所述客户端将所述客户端私钥与所述预设哈希函数计算出的哈希值相乘,得到第一结果,并将所述第一结果与所述目标整数执行取模运算,得到所述环画像。
示例性地,上述环画像可以基于以下公式三计算得到:
I=kj*H(R)mod q (公式三)
示例性地,在基于环画像生成环签名之前,还需要获取一些其他参数,例如,公钥子集、每个公钥对应的随机数、签名结果等。
具体地,上述步骤302中基于所述环画像生成环签名的步骤,还可以包括以下步骤302b1至步骤302b3:
步骤302b1、所述客户端从所述目标公钥集合中随机选择包含多个公钥的所述公钥子集。
步骤302b2、所述客户端使用所述客户端的客户端私钥对待签名消息执行SM2签名,得到签名结果。
步骤302b3、所述客户端基于所述签名结果中的签名值与所述椭圆曲线的基点的乘积,计算第一标量。
其中,所述第一标量为所述公钥子集指示的各个公钥的目标排列顺序中,与所述客户端公钥相邻的下一个第一公钥对应的标量。
示例性地,上述公钥子集R={K1,K2,…,Kn}中需要包含客户端公钥。由于该客户端公钥为公钥子集中第j个公钥,因此,首先需要计算出第j+1个公钥对应的标量,即cj+1。
示例性地,可以基于以下公式四计算出上述第j+1个公钥对应的标量:
cj+1=s*G (公式一)
其中,s为签名结果的签名值,G为基点。
可以理解的是,环签名是一种允许一个签名者代表一个签名集合进行签名,同时保证签名者身份的匿名性的密码技术。环签名中的G是一个椭圆曲线上的基点,也被称为生成元。G的作用是用于生成公钥和私钥,以及计算签名和验证签名的过程中的一些点。具体来说,假设签名者拥有私钥sk和公钥pk,其中pk=sk·G,这里的“·”表示椭圆曲线上的倍乘运算。签名者想要对一个消息m进行环签名,他需要找到n-1个其他人的公钥,与自己的公钥组成一个环,然后按照一定的算法生成签名,其中会用到G和其他点的运算。验证者收到签名后,也需要用到G和其他点的运算,来检验签名的有效性。G是一个固定的点,它是环签名体系的前提之一,它的选择要满足一些条件,比如G的阶要是一个大素数,G不能是椭圆曲线上的无穷远点等。
示例性地,在计算出上述第一标量之后,便可以通过递归的方法计算出后续所有公钥对应的标量。
具体地,上述步骤302b3之后,上述步骤302,还可以包括以下步骤302c1和步骤302c2:
步骤302c1、所述客户端生成所述公钥子集中除所述客户端公钥之外的其他公钥对应的第一随机数集合。
示例性地,对于公钥i=j+1,j+2,…n,1,2,…j-1,均需要生成对应的随机数ti。之后,便可以基于每个公钥对应的随机数来计算每个公钥对应的标量。
可以理解的是,上述i不存在等于j的值,因此,上述随机数ti中并未包含客户端公钥对应的随机数。
步骤302c2、所述客户端基于所述第一标量、所述第一随机数集合中的随机数、所述基点以及所述环画像,按照所述目标排列顺序递归计算所述公钥子集中各个公钥对应的标量。
具体地,上述步骤302c2中,客户端可以基于以下公式一计算各个公钥对应的标量:
ci+1=ti*G+ci*I*Ki (公式一)
其中,所述c为标量,t为随机数,G为所述基点,I为环画像,K为公钥,i=j+1,j+2,…n,1,2,…j-1;n为所述公钥子集中公钥的数量,j为所述公客户端公钥在所述公钥子集中的排序。
可以理解的是,根据上述公式一可知,公钥i+1对应的标量为基于其前一个公钥i对应的标量计算后得到的。当i=j-1时,得到的标量为上述客户端公钥对应的标量。
示例性地,在得到每个公钥对应的标量之后,便可以计算客户端公钥对应的随机数。
具体地,上述步骤302c2之后,上述步骤302,还可以包括以下步骤302d1和步骤302d2:
步骤302d1、所述客户端基于所述签名值、所述客户端私钥、所述客户端公钥对应的标量、所述环画像得到第二结果,并将所述第二结果与所述目标整数取模运算后,得到所述客户端公钥对应的随机数。
步骤302d2、所述客户端基于将所述客户端公钥对应的随机数添加至所述第一随机数集合,得到第二随机数集合,并基于所述公钥子集、所述环画像以及所述第二随机数集合构建所述环签名。
具体地,客户端可以基于以下公式二计算所述客户端公钥对应的随机数:
tj=(s-cj*I*kj)mod q (公式二)
其中,s为所述签名值,kj为所述客户端私钥,cj为所述客户端公钥对应的标量,q为所述目标整数。
示例性地,在得到上述公钥子集中每个公钥对应的随机数,以及每个公钥对应的标量之后,便可以构建环签名σ=(R,I,c1,t1,t2,...,tn)。
需要说明的是,注意环签名中并不包含签名结果(r,s),可以避免服务器通过遍历验证签名的方式找到真正的客户端公钥。
步骤303、所述服务端在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证。
具体地,可以基于以下步骤来验证环签名是否由公钥列表R中的一个签名者(客户端)签署的:
1、对于i=1,2,…,n,如遇到n+1则替换为1,并计算ci+1′=ti*G+ci*I*Ki。
2、检查c1′是否与c1相同,如果相等,说明签名合法有效。
本申请提供的基于TLCP的身份认证方法,首先,所述客户端,用于在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;之后,所述客户端,还用于基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;最后,所述服务端,用于在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。如此,通过基于SM2椭圆曲线的环签名,以及利用标准SM2签名结果得到最终的环签名结果,可以避免认证过程中客户端身份信息的泄露,提升客户端隐私保护等级。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行基于TLCP的身份认证系统,该方法包括:所述客户端在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;所述客户端基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;所述服务端在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于TLCP的身份认证系统,该方法包括:所述客户端在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;所述客户端基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;所述服务端在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。
又一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于TLCP的身份认证系统,该方法包括:所述客户端在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;所述客户端基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;所述服务端在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种基于TLCP的身份认证系统,其特征在于,所述系统包括:客户端和服务端;
所述客户端,用于在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;
所述客户端,还用于基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;
所述服务端,用于在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;
其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。
2.根据权利要求1所述的系统,其特征在于,
所述客户端,具体用于将所述客户端私钥与所述预设哈希函数计算出的哈希值相乘,得到第一结果,并将所述第一结果与所述目标整数执行取模运算,得到所述环画像。
3.根据权利要求1或2所述的系统,其特征在于,
所述客户端,具体用于从所述目标公钥集合中随机选择包含多个公钥的所述公钥子集;
所述客户端,具体还用于使用所述客户端的客户端私钥对待签名消息执行SM2签名,得到签名结果;
所述客户端,具体还用于基于所述签名结果中的签名值与所述椭圆曲线的基点的乘积,计算第一标量;
其中,所述第一标量为所述公钥子集指示的各个公钥的目标排列顺序中,与所述客户端公钥相邻的下一个第一公钥对应的标量。
4.根据权利要求3所述的系统,其特征在于,
所述客户端,具体用于生成所述公钥子集中除所述客户端公钥之外的其他公钥对应的第一随机数集合;
所述客户端,具体还用于基于所述第一标量、所述第一随机数集合中的随机数、所述基点以及所述环画像,按照所述目标排列顺序递归计算所述公钥子集中各个公钥对应的标量。
5.根据权利要求4所述的系统,其特征在于,
所述客户端基于以下公式一计算各个公钥对应的标量:
ci+1=ti*G+ci*I*Ki (公式一)
其中,所述c为标量,t为随机数,G为所述基点,I为环画像,K为公钥,i=j+1,j+2,…n,1,2,…j-1;n为所述公钥子集中公钥的数量,j为所述公客户端公钥在所述公钥子集中的排序。
6.根据权利要求4所述的系统,其特征在于,
所述客户端,具体用于基于所述签名值、所述客户端私钥、所述客户端公钥对应的标量、所述环画像得到第二结果,并将所述第二结果与所述目标整数取模运算后,得到所述客户端公钥对应的随机数;
所述客户端,具体用于基于将所述客户端公钥对应的随机数添加至所述第一随机数集合,得到第二随机数集合,并基于所述公钥子集、所述环画像以及所述第二随机数集合构建所述环签名。
7.根据权利要求6所述的系统,其特征在于,
所述客户端基于以下公式二计算所述客户端公钥对应的随机数:
tj=(s-cj*I*kj)mod q (公式二)
其中,s为所述签名值,kj为所述客户端私钥,cj为所述客户端公钥对应的标量,q为所述目标整数。
8.一种基于TLCP的身份认证方法,其特征在于,应用于身份认证系统,所述系统包括:客户端和服务端;所述方法包括:
所述客户端在与所述服务端的认证过程中,从所述服务端获取所述客户端所属目标群组中各个群组成员的公钥,得到目标公钥集合;
所述客户端基于所述目标公钥集合、所述客户端对应的客户端私钥计算环画像,并基于所述环画像生成环签名,将所述环签名发送至所述服务端;
所述服务端在接收到所述客户端发送的所述环签名的情况下,对所述环签名进行验证,并在验证成功后,完成对所述客户端的身份认证;
其中,所述环画像为基于所述客户端私钥、预设哈希函数以及目标整数计算得到的;所述预设哈希函数的输入参数为公钥子集;所述公钥子集为所述目标公钥集合的子集、且所述公钥子集中包含所述客户端公钥;所述目标整数为认证过程中所使用的椭圆曲线的阶。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求8所述基于TLCP的身份认证系统的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求8所述基于TLCP的身份认证系统的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311763448.4A CN117714074A (zh) | 2023-12-20 | 2023-12-20 | 基于tlcp的身份认证系统、方法、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311763448.4A CN117714074A (zh) | 2023-12-20 | 2023-12-20 | 基于tlcp的身份认证系统、方法、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117714074A true CN117714074A (zh) | 2024-03-15 |
Family
ID=90155088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311763448.4A Pending CN117714074A (zh) | 2023-12-20 | 2023-12-20 | 基于tlcp的身份认证系统、方法、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117714074A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010164927A (ja) * | 2009-01-19 | 2010-07-29 | Nippon Telegr & Teleph Corp <Ntt> | 匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、追跡機能付き匿名署名システム、それらの方法及びプログラム |
US20120159153A1 (en) * | 2010-12-13 | 2012-06-21 | Korea Basic Science Institute | Efficient Identity-Based Ring Signature Scheme With Anonymity And System Thereof |
CN105812369A (zh) * | 2016-03-15 | 2016-07-27 | 广东石油化工学院 | 一种基于椭圆曲线的可追踪的匿名认证方法 |
US20180234409A1 (en) * | 2017-02-13 | 2018-08-16 | Mark A. Nelson | Privacy ensured brokered identity federation |
CN112383403A (zh) * | 2020-11-16 | 2021-02-19 | 九江学院 | 一种异构环签名方法 |
CN114448640A (zh) * | 2021-12-22 | 2022-05-06 | 深圳市领存技术有限公司 | 一种双盲信息分发方法、装置及计算机可读存储介质 |
WO2023094008A1 (en) * | 2021-11-29 | 2023-06-01 | Huawei Technologies Co., Ltd. | Methods for anonymity authentication and message exchange in a cloud |
CN116566626A (zh) * | 2023-07-11 | 2023-08-08 | 北京信安世纪科技股份有限公司 | 环签名方法和设备 |
-
2023
- 2023-12-20 CN CN202311763448.4A patent/CN117714074A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010164927A (ja) * | 2009-01-19 | 2010-07-29 | Nippon Telegr & Teleph Corp <Ntt> | 匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、追跡機能付き匿名署名システム、それらの方法及びプログラム |
US20120159153A1 (en) * | 2010-12-13 | 2012-06-21 | Korea Basic Science Institute | Efficient Identity-Based Ring Signature Scheme With Anonymity And System Thereof |
CN105812369A (zh) * | 2016-03-15 | 2016-07-27 | 广东石油化工学院 | 一种基于椭圆曲线的可追踪的匿名认证方法 |
US20180234409A1 (en) * | 2017-02-13 | 2018-08-16 | Mark A. Nelson | Privacy ensured brokered identity federation |
CN112383403A (zh) * | 2020-11-16 | 2021-02-19 | 九江学院 | 一种异构环签名方法 |
WO2023094008A1 (en) * | 2021-11-29 | 2023-06-01 | Huawei Technologies Co., Ltd. | Methods for anonymity authentication and message exchange in a cloud |
CN114448640A (zh) * | 2021-12-22 | 2022-05-06 | 深圳市领存技术有限公司 | 一种双盲信息分发方法、装置及计算机可读存储介质 |
CN116566626A (zh) * | 2023-07-11 | 2023-08-08 | 北京信安世纪科技股份有限公司 | 环签名方法和设备 |
Non-Patent Citations (1)
Title |
---|
王瑞锦;余苏喆;李悦;唐榆程;张凤荔;: "基于环签名的医疗区块链隐私数据共享模型", 电子科技大学学报, no. 06, 30 November 2019 (2019-11-30), pages 886 - 892 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107948189B (zh) | 非对称密码身份鉴别方法、装置、计算机设备及存储介质 | |
CN108667626B (zh) | 安全的两方协作sm2签名方法 | |
CN110268676B (zh) | 基于身份的自认证签名方案的私有密钥计算系统和方法 | |
US10027654B2 (en) | Method for authenticating a client device to a server using a secret element | |
CN107659395B (zh) | 一种多服务器环境下基于身份的分布式认证方法及系统 | |
US8930704B2 (en) | Digital signature method and system | |
EP3642997A1 (en) | Secure communications providing forward secrecy | |
CN107437993A (zh) | 一种基于无证书两方认证密钥协商方法和装置 | |
CN112564907B (zh) | 密钥生成方法及装置、加密方法及装置、解密方法及装置 | |
JP2008545353A (ja) | 未知の通信当事者間における信頼できる関係の確立 | |
KR20110117169A (ko) | Id 기반 인증 키 동의 프로토콜을 수행하기 위한 방법 및 장치 | |
CN112104453B (zh) | 一种基于数字证书的抗量子计算数字签名系统及签名方法 | |
JP2013042555A (ja) | 鍵認証方式 | |
CN112087428B (zh) | 一种基于数字证书的抗量子计算身份认证系统及方法 | |
CN111355582A (zh) | 基于sm2算法的两方联合签名和解密的方法及系统 | |
CN113098681B (zh) | 云存储中口令增强且可更新的盲化密钥管理方法 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
CN111565108B (zh) | 签名处理方法、装置及系统 | |
CN110798313A (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 | |
CN114978488A (zh) | 一种基于sm2算法的协同签名方法及系统 | |
CN109412815B (zh) | 一种实现跨域安全通信的方法和系统 | |
CN117714074A (zh) | 基于tlcp的身份认证系统、方法、存储介质及电子设备 | |
CN112667995A (zh) | 受限Paillier加密系统及其在密钥分发和身份认证中的应用方法 | |
CN113014376A (zh) | 一种用户与服务器之间安全认证的方法 | |
Dugardin et al. | A New Fair Identity Based Encryption Scheme |
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 |