CN113918899A - 一种身份认证方法以及凭证持有系统和验证系统 - Google Patents

一种身份认证方法以及凭证持有系统和验证系统 Download PDF

Info

Publication number
CN113918899A
CN113918899A CN202111016977.9A CN202111016977A CN113918899A CN 113918899 A CN113918899 A CN 113918899A CN 202111016977 A CN202111016977 A CN 202111016977A CN 113918899 A CN113918899 A CN 113918899A
Authority
CN
China
Prior art keywords
identity
certificate
signature
credential
verifiable
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
CN202111016977.9A
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.)
Digital Currency Institute of the Peoples Bank of China
Original Assignee
Digital Currency Institute of the Peoples Bank of China
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 Digital Currency Institute of the Peoples Bank of China filed Critical Digital Currency Institute of the Peoples Bank of China
Priority to CN202111016977.9A priority Critical patent/CN113918899A/zh
Publication of CN113918899A publication Critical patent/CN113918899A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种身份认证方法以及凭证持有系统和验证系统,涉及计算机技术领域。该方法的一具体实施方式包括:根据验证系统发送的认证请求确定身份凭证集合,身份凭证集合包括指定数量的身份凭证,身份凭证包括目标对象的声明、凭证颁发系统的分布式标识符以及凭证颁发系统的签名,基于身份凭证集合中的身份凭证生成可验证表述,可验证表述包括身份凭证集合中各身份凭证中的声明和分布式标识符,以及由各身份凭证中的签名聚合得到的聚合签名,将可验证表述发送至验证系统进行目标对象的身份认证。该实施方式能够减少需要传送的签名个数,降低用户进行身份凭证传递时的通信开销,并且可以阻止针对聚合签名的伪造攻击。

Description

一种身份认证方法以及凭证持有系统和验证系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种身份认证方法以及凭证持有系统和验证系统。
背景技术
现有的数字身份认证方案主要有:用户名加口令,此最常见的数字身份认证方式,通常以用户名加口令的模式来创建和验证,个人身份信息保存在各应用或网站的数据库中,该模式下最大的问题是单点泄露风险,任何一个小网站管理不善均会造成用户身份信息的泄露;单点登录(Single Sign On,以下简称SSO),用户使用某个网站(如社交网站、社交聊天软件等)作为身份认证服务器,当应用服务器需要验证用户身份时不需要用户重复登录,只需要认证服务器提供认证并由用户授权应用服务器从认证服务器中读取相关信息,该模式下用户关键信息都存储在认证服务器上,认证服务器容易成为攻击的目标,同时商业性的认证服务器跟用户的利益并不完全一致,有可能会违背用户意愿滥用或出售用户信息。在越来越注重个人隐私的背景下,自主权身份认证应运而生,自主权身份(Self-Sovereign Identity,简称SSI)强调将用户隐私信息还给用户,现有的分布式身份系统中身份凭证由各个不同的凭证颁发者通过数字签名签发,通过密码机制分别完成凭证的颁发和传递,验证时需要分别验证所有签名。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
验证者需要凭证持有者提供多份可验证凭证,同时凭证由各种不同的凭证颁发者通过数字签名签发,凭证持有者向验证者出示凭证时需要传送多份签名,通信代价较高。
发明内容
有鉴于此,本发明实施例提供一种身份认证方法以及凭证持有系统和验证系统,能够减少需要传送的签名个数,降低用户进行身份凭证传递时的通信开销,并且可以阻止针对聚合签名的伪造攻击。
为实现上述目的,根据本发明实施例的一个方面,提供了一种身份认证方法。
一种身份认证方法,包括:根据验证系统发送的认证请求确定身份凭证集合,所述认证请求用于请求对目标对象进行身份认证,所述身份凭证集合包括指定数量的身份凭证,所述身份凭证包括所述目标对象的声明以及凭证颁发系统的签名;基于所述身份凭证集合中的身份凭证生成可验证表述,所述可验证表述包括所述身份凭证集合中各身份凭证中的所述声明,以及由所述各身份凭证中的签名聚合得到的聚合签名;将所述可验证表述发送至所述验证系统进行验证,以完成对所述目标对象的身份认证。
可选地,所述身份凭证还包括凭证颁发系统的分布式标识符所述根据验证系统发送的认证请求确定身份凭证集合之前,包括:根据凭证颁发系统的分布式标识符,得到所述凭证颁发系统的公钥;利用所述凭证颁发系统的公钥,对所述目标对象的声明加密,并将加密后的所述目标对象的声明发送至所述凭证颁发系统,以由所述凭证颁发系统生成并返回所述身份凭证。
可选地,所述可验证表述还包括所述分布式标识符;所述基于所述身份凭证集合中的身份凭证生成可验证表述,包括:由所述各身份凭证中的签名聚合得到所述聚合签名;对所述身份凭证集合中各身份凭证中的所述声明、所述分布式标识符,以及所述聚合签名进行链接处理,并利用凭证持有系统的私钥对所述链接处理的结果添加凭证持有系统签名,所述凭证持有系统与所述目标对象相对应;根据所述身份凭证集合中各身份凭证中的所述声明和所述分布式标识符,所述聚合签名,以及所述凭证持有系统签名,生成所述可验证表述。
可选地,所述基于所述身份凭证集合中的身份凭证生成可验证表述,包括:由所述各身份凭证中的签名聚合得到所述聚合签名;对所述身份凭证集合中各身份凭证中的所述声明以及所述聚合签名进行链接处理,并利用凭证持有系统的私钥对所述链接处理的结果添加凭证持有系统签名,所述凭证持有系统与所述目标对象相对应;根据所述身份凭证集合中各身份凭证中的所述声明、所述聚合签名以及所述凭证持有系统签名,生成所述可验证表述。可选地,所述由所述各身份凭证中的签名聚合得到所述聚合签名,包括:将所述各身份凭证中的签名相乘,得到所述聚合签名。
根据本发明实施例的另一方面,提供了一种身份认证方法。
一种身份认证方法,包括:向凭证持有系统发送认证请求,所述认证请求用于请求对目标对象进行身份认证;接收所述凭证持有系统发送的可验证表述,所述可验证表述包括身份凭证集合中各身份凭证所含的所述目标对象的声明,以及由所述各身份凭证中的签名聚合得到的聚合签名,所述身份凭证集合是所述凭证持有系统根据所述认证请求确定的;通过验证所述可验证表述,完成对所述目标对象的身份认证。
可选地,所述聚合签名为第一乘法循环群中的一个元;所述可验证表述还包括所述身份凭证所含的凭证颁发系统的分布式标识符;所述通过验证所述可验证表述,完成对所述目标对象的身份认证,包括:将所述聚合签名与第二乘法循环群中的生成元做双线性映射,得到第一数值;对于每一所述身份凭证,将该身份凭证中的所述声明和所述分布式标识符链接后进行哈希处理,得到相应的哈希处理结果,将该哈希处理结果与颁发该身份凭证的凭证颁发系统的公钥做双线性映射,得到对应该身份凭证的第二数值,所述凭证颁发系统的公钥是根据该身份凭证中的所述分布式标识符得到的;在所述第一数值等于对应各身份凭证的所述第二数值的乘积的情况下,确定所述身份认证通过。
可选地,所述可验证表述还包括凭证持有系统签名,所述凭证持有系统签名是所述凭证持有系统对所述身份凭证集合中各身份凭证中的所述声明、所述分布式标识符,以及所述聚合签名进行链接处理并添加签名得到的;所述验证所述可验证表述之前,包括:对所述凭证持有系统签名进行验证,并确定所述凭证持有系统签名验证通过。
根据本发明实施例的又一方面,提供了一种凭证持有系统。
一种凭证持有系统,包括:身份凭证集合确定模块,用于根据验证系统发送的认证请求确定身份凭证集合,所述认证请求用于请求对目标对象进行身份认证,所述身份凭证集合包括指定数量的身份凭证,所述身份凭证包括所述目标对象的声明以及凭证颁发系统的签名;可验证表述生成模块,用于基于所述身份凭证集合中的身份凭证生成可验证表述,所述可验证表述包括所述身份凭证集合中各身份凭证中的所述声明,以及由所述各身份凭证中的签名聚合得到的聚合签名;可验证表述发送模块,用于将所述可验证表述发送至所述验证系统进行验证,以完成对所述目标对象的身份认证。
可选地,所述身份凭证还包括凭证颁发系统的分布式标识符;还包括身份凭证获取模块,用于:根据凭证颁发系统的分布式标识符,得到所述凭证颁发系统的公钥;利用所述凭证颁发系统的公钥,对所述目标对象的声明加密,并将加密后的所述目标对象的声明发送至所述凭证颁发系统,以由所述凭证颁发系统生成并返回所述身份凭证。
可选地,所述可验证表述还包括所述分布式标识符;所述可验证表述生成模块还用于:由所述各身份凭证中的签名聚合得到所述聚合签名;对所述身份凭证集合中各身份凭证中的所述声明、所述分布式标识符,以及所述聚合签名进行链接处理,并利用凭证持有系统的私钥对所述链接处理的结果添加凭证持有系统签名,所述凭证持有系统与所述目标对象相对应;根据所述身份凭证集合中各身份凭证中的所述声明和所述分布式标识符,所述聚合签名,以及所述凭证持有系统签名,生成所述可验证表述。
可选地,所述可验证表述生成模块还用于:由所述各身份凭证中的签名聚合得到所述聚合签名;对所述身份凭证集合中各身份凭证中的所述声明以及所述聚合签名进行链接处理,并利用凭证持有系统的私钥对所述链接处理的结果添加凭证持有系统签名,所述凭证持有系统与所述目标对象相对应;根据所述身份凭证集合中各身份凭证中的所述声明、所述聚合签名以及所述凭证持有系统签名,生成所述可验证表述。
可选地,所述可验证表述生成模块通过将所述各身份凭证中的签名相乘,得到所述聚合签名。
根据本发明实施例的又一方面,提供了一种用于身份认证的验证系统。
一种用于身份认证的验证系统,包括:认证请求发送模块,用于向凭证持有系统发送认证请求,所述认证请求用于请求对目标对象进行身份认证;可验证表述接收模块,用于接收所述凭证持有系统发送的可验证表述,所述可验证表述包括身份凭证集合中各身份凭证所含的所述目标对象的声明,以及由所述各身份凭证中的签名聚合得到的聚合签名,所述身份凭证集合是所述凭证持有系统根据所述认证请求确定的;身份认证模块,用于通过验证所述可验证表述,完成对所述目标对象的身份认证。
可选地,所述聚合签名为第一乘法循环群中的一个元;所述可验证表述还包括所述身份凭证所含的凭证颁发系统的分布式标识符;所述身份认证模块还用于:将所述聚合签名与第二乘法循环群中的生成元做双线性映射,得到第一数值;对于每一所述身份凭证,将该身份凭证中的所述声明和所述分布式标识符链接后进行哈希处理,得到相应的哈希处理结果,将该哈希处理结果与颁发该身份凭证的凭证颁发系统的公钥做双线性映射,得到对应该身份凭证的第二数值,所述凭证颁发系统的公钥是根据该身份凭证中的所述分布式标识符得到的;在所述第一数值等于对应各身份凭证的所述第二数值的乘积的情况下,确定所述身份认证通过。
可选地,所述可验证表述还包括凭证持有系统签名,所述凭证持有系统签名是所述凭证持有系统对所述身份凭证集合中各身份凭证中的所述声明、所述分布式标识符,以及所述聚合签名进行链接处理并添加签名得到的;所述系统还包括签名验证模块,用于:对所述凭证持有系统签名进行验证,并确定所述凭证持有系统签名验证通过。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的身份认证方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的身份认证方法。
上述发明中的一个实施例具有如下优点或有益效果:根据验证系统发送的认证请求确定身份凭证集合,认证请求用于请求对目标对象进行身份认证,身份凭证集合包括指定数量的身份凭证,身份凭证包括目标对象的声明、凭证颁发系统的分布式标识符以及凭证颁发系统的签名,基于身份凭证集合中的身份凭证生成可验证表述,可验证表述包括身份凭证集合中各身份凭证中的声明和分布式标识符,以及由各身份凭证中的签名聚合得到的聚合签名,将可验证表述发送至验证系统进行目标对象的身份认证。能够减少需要传送的签名个数,降低用户进行身份凭证传递时的通信开销,并且可以阻止针对聚合签名的伪造攻击。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的身份认证方法的主要步骤示意图;
图2是根据本发明另一个实施例的身份认证方法的主要步骤示意图;
图3是根据本发明一个实施例的凭证持有系统的主要模块示意图;
图4是根据本发明一个实施例的用于身份认证的验证系统的主要模块示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明一个实施例的身份认证方法的主要步骤示意图。
如图1所示,本发明一个实施例的身份认证方法主要包括如下的步骤S101至步骤S103。本实施例的身份认证方法可由凭证持有系统执行。
步骤S101:根据验证系统发送的认证请求确定身份凭证集合,认证请求用于请求对目标对象进行身份认证,身份凭证集合包括指定数量的身份凭证,身份凭证包括目标对象的声明以及凭证颁发系统的签名;
步骤S102:基于身份凭证集合中的身份凭证生成可验证表述,可验证表述包括身份凭证集合中各身份凭证中的声明,以及由各身份凭证中的签名聚合得到的聚合签名;
步骤S103:将可验证表述发送至验证系统进行验证,以完成对目标对象的身份认证。
在一个实施例中,身份凭证还可以包括凭证颁发系统的分布式标识符。
根据验证系统发送的认证请求确定身份凭证集合之前,可以根据凭证颁发系统的分布式标识符,得到凭证颁发系统的公钥;利用凭证颁发系统的公钥,对目标对象的声明加密,并将加密后的目标对象的声明发送至凭证颁发系统,以由凭证颁发系统生成并返回身份凭证。
声明(claim)是关于主体的一段描述,以目标对象为某人Alice为例,目标对象的声明例如claim={Alice毕业于Bob大学}。凭证持有者(具体为凭证持有系统)可以通过密码机制将声明发送给可信的凭证颁发者(具体为凭证颁发系统)来确认凭证的正确性,凭证颁发者确认声明的正确性后,使用凭证颁发者的私钥对声明进行签名就可以生成可验证凭证,即凭证颁发系统生成并返回的身份凭证。
在一个实施例中,基于身份凭证集合中的身份凭证生成可验证表述,具体可以包括:由各身份凭证中的签名聚合得到聚合签名;对身份凭证集合中各身份凭证中的声明以及聚合签名进行链接处理,并利用凭证持有系统的私钥对链接处理的结果添加凭证持有系统签名,凭证持有系统与目标对象相对应;根据身份凭证集合中各身份凭证中的声明、聚合签名以及凭证持有系统签名,生成可验证表述。
在另一实施例中,基于身份凭证集合中的身份凭证生成可验证表述,具体可以包括:由各身份凭证中的签名聚合得到聚合签名;对身份凭证集合中各身份凭证中的声明、分布式标识符,以及聚合签名进行链接处理,并利用凭证持有系统的私钥对链接处理的结果添加凭证持有系统签名,凭证持有系统与目标对象相对应;根据身份凭证集合中各身份凭证中的声明和分布式标识符,聚合签名,以及凭证持有系统签名,生成可验证表述。可验证表述还包括该分布式标识符。利用分布式标识符能够保证信息两两不同,阻止聚合签名被伪造攻击。
上述的由各身份凭证中的签名聚合得到聚合签名,具体可以将各身份凭证中的签名相乘,得到聚合签名。
本发明实施例能将多份签名压缩为一个签名,可以大大降低凭证持有系统向验证系统传输身份凭证的通信代价。
图2是根据本发明另一个实施例的身份认证方法的主要步骤示意图。
如图2所示,本发明另一个实施例的身份认证方法主要包括如下的步骤S201至步骤S203。实施例的身份认证方法可由验证系统执行。
步骤S201:向凭证持有系统发送认证请求,认证请求用于请求对目标对象进行身份认证。
步骤S202:接收凭证持有系统发送的可验证表述,可验证表述包括身份凭证集合中各身份凭证所含的目标对象的声明,以及由各身份凭证中的签名聚合得到的聚合签名,身份凭证集合是凭证持有系统根据认证请求确定的。
步骤S203:通过验证可验证表述,完成对目标对象的身份认证。
可验证表述还可以包括身份凭证所含的凭证颁发系统的分布式标识符。
聚合签名为第一乘法循环群中的一个元。通过验证可验证表述,完成对目标对象的身份认证,具体可以包括:将聚合签名与第二乘法循环群中的生成元做双线性映射,得到第一数值;对于每一身份凭证,将该身份凭证中的声明和分布式标识符链接后进行哈希处理,得到相应的哈希处理结果,将该哈希处理结果与颁发该身份凭证的凭证颁发系统的公钥做双线性映射,得到对应该身份凭证的第二数值,凭证颁发系统的公钥是根据该身份凭证中的分布式标识符得到的;在第一数值等于对应各身份凭证的第二数值的乘积的情况下,确定身份认证通过。
可验证表述还包括凭证持有系统签名,凭证持有系统签名是凭证持有系统对身份凭证集合中各身份凭证中的声明、分布式标识符,以及聚合签名进行链接处理并添加签名得到的。
验证可验证表述之前,可以对凭证持有系统签名进行验证,并确定凭证持有系统签名验证通过。若凭证持有系统签名验证未通过,则不执行验证可验证表述的步骤,流程终止。
本发明实施例通过聚合签名技术将来自不同签发者签发的多个数字签名压缩成一个签名,降低传递多个签名时的通信开销。
为了有助于说明本发明实施例的方案,首先对相关技术进行介绍。分布式身份(Decentralized Identifier,简称DID,或称分布式标识符),分布式身份作为自主权身份的解决方案正越来越引起大家的广泛关注,国际标准化组织W3C(World Wide WebConsortium)也正通过制定分布式标识符和可验证凭证的标准来推进分布式身份的标准化工作,进而实现自主权身份的愿景目标,身份认证领域各类组织也逐步意识到分布式身份的重要价值,提交各自的DID协议方法。
分布式身份系统中,身份凭证由各个不同的凭证颁发者(即凭证颁发系统)通过数字签名签发(例如毕业证明由相应的大学签发,离职证明由用户的上家公司签发,等等),通过密码机制完成凭证的颁发和传递,存储于凭证持有者(具体指凭证持有系统)本地安全区域,验证者(具体指验证系统)验证身份凭证时,可由凭证持有者打包多个相关凭证(例如用户入职做背景调查需要提供毕业院校的毕业证明和上家单位的离职证明)并签名,通过基于DID的密码机制安全传递给验证者。
本发明实施例将聚合签名应用于多个凭证打包形成可验证表述的过程,通过聚合签名技术将来自不同签发者(即凭证颁发者)签发的数字签名压缩成一个签名,验证时只需要验证聚合后的签名而无需验证所有签名,减少需要传送的签名个数,降低用户进行身份凭证传递时的通信开销。
为了能够将聚合签名应用于分布式身份系统,各凭证颁发者均需使用基于pairing(配对)友好的椭圆曲线签名算法(例如可基于我国的商用密码标准算法SM9)构造BLS签名。使用基于pairing友好的椭圆曲线签名算法,即能够进行有效计算双线性映射的曲线。
首先介绍双线性映射,设G1,G2,GT均是阶为素数p的乘法循环群,g1,g2,gT分别为群G1,G2,GT的生成元。双线性映射是一个映射关系e:G1×G2→GT,并且满足下面的条件:
双线性性:对于所有的u∈G1,v∈G2,以及a,b∈Z,e(ua,vb)=e(u,v)ab
非退化性:e(g1,g2)≠1T,其中1T为GT中的单位元,
可计算性:存在有效的算法,对于任意的u∈G1,v∈G2,均可计算e(u,v)。
其次介绍BLS签名方案,该签名方案的优点是签名长度较短,BLS签名方案由三个算法组成:密钥生成算法、签名算法、验证算法。
密钥生成算法,即随机选择x∈Zp,并计算
Figure BDA0003240218500000111
则公钥为v∈G2,私钥为x∈Zp
签名算法,即给定私钥x以及消息M∈{0,1}*,计算h=H(M),其中h∈G1,H为哈希函数,则σ=hx,即σ∈G1为签名。
验证算法,即给定公钥v,消息M以及签名σ,计算h=H(M),通过验证计算e(h,v)=e(σ,g2)是否成立来判断签名是否有效。
基于BLS签名,就可以在其上构造聚合签名方案,聚合签名方案由五个算法组成:密钥生成算法,签名算法,验证算法,聚合算法,聚合签名验证算法。
密钥生成算法,即随机选择x∈Zp,并计算
Figure BDA0003240218500000112
则公钥为v∈G2,私钥为x∈Zp
签名算法,即给定私钥x以及消息M∈{0,1}*,计算h=H(M),其中h∈G1,H为哈希函数,则σ=hx,即σ∈G1为签名。
验证算法,即给定公钥v,消息M以及签名σ,计算h=H(M),通过验证计算e(h,v)=e(σ,g2)是否成立来判断签名是否有效。
聚合算法,即假设n个签名σ1,...,σn由n个不同的签发者U1,...,Un(签名者Ui的私钥为xi,公钥为vi),根据签名算法分别对n个不同的消息M1,...,Mn进行签名得到,即hi=H(Mi),
Figure BDA0003240218500000113
这里要求Mi,1≤i≤n两两不同,计算
Figure BDA0003240218500000114
则σ∈G1为聚合后的签名。
聚合签名验证算法,验证算法的输入包括消息Mi∈{0,1}*,对应的签发者Ui的公钥vi,1≤i≤n,检查聚合签名σ是否满足以下两个条件:
(1)确保消息Mi(1≤i≤n)两两不同,否则验证不通过。
(2)对每一个消息Mi,1≤i≤n计算hi=H(Mi),如果等式
Figure BDA0003240218500000115
成立,则验证通过。
从上述过程可以看出,前三个算法:密钥生成算法,签名算法,验证算法就是BLS签名算法。
分布式身份系统中每个用户均可以随机生成sk∈Zp作为自己的私钥,则公钥为pk=g2 sk,私钥由用户存于本地安全区域,公钥pk可以用来生成DID标识符(即分布式标识符)和DID文档。
此处先对DID标识符和DID文档做出解释。DID标识符是全球唯一的标识符,是一个由3个部分组成的字符串(三部分中间以":"分隔):
1)、DID的URI(统一资源描述符)方案标识符,使用固定字符串:"did";
2)、DID方法(DID Method)标识符,例如W3C文档中DID样例的方法名为"example"、某银行DID方法WeIdentity的方法名为"weid";
3)、由具体的DID方法给定的特殊标识符(DID method-specific identifier)。
DID文档(DID document)包含有DID标识符所对应的具体密码材料(公钥)、验证方法或服务端点等信息,与DID标识符是一一对应的关系(事实上很多DID标识符通常是由DID文档中的公钥经过哈希或其他变换得到),通常DID标识符和DID文档以"key-value"的形式存储于分布式账本中,无需中心化的注册机构托管。任何外部用户都可以通过DID方法提供的解析器将DID标识符解析为DID文档,进而获得持有者的公钥,而DID持有者可以通过存储于本地安全区域的私钥进行签名来向外部用户证实其确实是该DID标识符的持有者,从而外部用户可以与该DID标识符持有者进行可信交互。DID标识符及DID文档中并不含有任何用户身份信息,DID标识符和DID文档只是提供了一种安全的密码机制来实现身份凭证的传递,真正的身份信息包含在可信任凭证(可验证凭证)中。
任何用户/凭证持有者(其私钥为sk,公钥为pk)可从n个不同的凭证颁发者DIDi(其私钥为ski,公钥为pki,1≤i≤2)处获得n个两两不同的凭证:
VC1={claim1,DID11},...,VCn={claimn,DIDnn},其中
Figure BDA0003240218500000121
该式中以及下文出现的“||”均表示将||两侧的内容链接在一起。验证者需要凭证持有者提供凭证时,凭证持有者可根据最小化原则根据自己的意愿提供最小数量的凭证,假设需提供其中的k个凭证(即指定数量的身份凭证)
Figure BDA0003240218500000131
若使用聚合签名,凭证持有者需要对这k个凭证打包后进行签名生成可验证表述:
Figure BDA0003240218500000132
其中
Figure BDA0003240218500000133
为凭证持有者对各个凭证的签名。
本发明实施例使用聚合签名,凭证持有者可将k个签名
Figure BDA0003240218500000134
压缩为一个聚合后的签名
Figure BDA0003240218500000135
则凭证持有者提供的新的可验证表述为:
Figure BDA0003240218500000136
其中
Figure BDA0003240218500000137
为聚合签名后凭证持有者对凭证的签名。
使用聚合签名后,可验证表述的消息长度由
Figure BDA0003240218500000138
变为
Figure BDA0003240218500000139
减少了n-1个签名的长度,需要出示的凭证越多,使用聚合签名的收益越高。
收到聚合签名后的可验证表述VP2后,验证者可以对可验证表述进行验证:
(1)验证
Figure BDA00032402185000001310
是否成立,成立则该可验证表述确实由凭证持有者签名得到。
(2)对
Figure BDA00032402185000001311
进行解析,找到k个凭证颁发者的公钥
Figure BDA00032402185000001312
(3)对每一个声明
Figure BDA00032402185000001313
计算
Figure BDA00032402185000001314
1≤i≤k,如果等式
Figure BDA00032402185000001315
成立,则验证通过。
聚合签名可将来自不同签发者对不同消息签发的多个签名压缩为一个签名,同时验证时只需要验证此聚合后的签名而无需分别对各个签名分别进行验证,本发明实施例将聚合签名应用于多个凭证打包形成可验证表述的过程,减少需要传递的签名个数,降低用户进行身份凭证传递时的通信开销。
下面以具体示例详细介绍本发明实施例的身份认证方法。
以David公司对新入职员工Alice进行背景调查为例,说明DID技术如何实现自主权身份,并介绍聚合签名如何在其中发挥自己的作用。例如凭证持有者Alice(具体指Alice操作的凭证持有系统,即凭证持有系统与目标对象Alice是相对应的)可以随机生成自己的私钥skA,并计算得到相应的公钥pkA,skA∈Zp,
Figure BDA0003240218500000141
进而生成其DID标识符DIDA=SM3(pkA),以及DID文档:
Figure BDA0003240218500000142
Alice可根据具体的DID方法将DID文档存储于分布式账本中,任何想要和Alice进行交互的外部用户都可以根据DID方法提供的解析器将Alice的DID标识符DIDA解析为上面的DID文档并获得Alice的公钥pkA。同时Alice可以根据凭证签发者的DID标识符找到签发者的公钥,例如Alice可以从其毕业的学校Bob大学的DID标识符DIDB找到Bob大学的DID文档及其对应的公钥pkB,然后Alice可将其声明claim1={Alice毕业于Bob大学}通过该公钥加密发送给Bob大学,学校确认其声明无误(学校如何确认其声明的正确性不在本专利的考虑范围之内,可参见相关的现有技术)后可以用其私钥skB对claim1及DIDB等关键信息签名得到可验证凭证VC1={claim1,DIDB1},其中σ1为BLS签名,即
Figure BDA0003240218500000143
同理,Alice可根据Carol公司的DID标识符DIDC找到Carol公司的DID文档及其对应的公钥pkC,Alice可将其声明claim2={Alice于2021年5月1日从Carol公司离职}通过公钥加密发送给Carol公司(DID标识符DIDC),前雇主Carol公司确认其声明无误后可以用其私钥skC对claim2进行签名得到离职的可验证凭证VC2={claim2,DIDC2},其中
Figure BDA0003240218500000151
此外Alice还可以从不同的可信机构获得各类其他凭证σ3,σ4,…,等等。
可验证凭证即上文所述的身份凭证,简称凭证。
当Alice即将入职的公司David公司想要对Alice做背景调查时,分布式身份系统下用户Alice可根据最小化原则,仅需要根据David公司的要求提供Bob大学的学历证明以及前雇主Carol公司的离职证明,即两个可验证凭证VC1={claim1,DIDB1},VC2={claim2,DIDC2}。
通常情况下,Alice需要对这两个凭证进行签名生成可验证表述。VP1={{claim1,DIDB1},{claim2,DIDC2},sign(skA,{claim1,DIDB1}||{claim2,DIDC2})}并将之提供给验证者David公司。
根据本实施例的聚合签名方案,Alice可将两个签名σ1,σ2压缩为一聚合后的签名即σ=σ1σ2,那么对于Alice而言,Alice仅需提供:VP2={claim1,DIDB,claim2,DIDC,σ,sign(skA,claim1||DIDB||claim2||DIDC||σ)},从该式可以看出,本发明实施例的可验证表述包括:各身份凭证中的声明(claim1、claim2)和分布式标识符(DIDB、DIDC),以及由各身份凭证中的签名聚合得到的聚合签名σ,还包括凭证持有系统签名,即Alice的签名sign(skA,claim1||DIDB||claim2||DIDC||σ)。
验证者可以对可验证表述进行验证,具体地:
(1)对Alice的签名(即凭证持有系统签名)sign(skA,claim1||DIDB||claim2||DIDC||σ)进行验证,确认该可验证表述确实由Alice发出;其中“claim1||DIDB||claim2||DIDC||σ”即凭证持有者对各身份凭证中的声明(claim1、claim2)、分布式标识符(DIDB、DIDC),以及聚合签名σ进行链接处理的结果。
(2)可对DIDB,DIDC进行解析,找到两个凭证颁发者的公钥pkB,pkC
(3)计算h1=H(claim1||DIDB),h2=H(claim2||DIDC),如果等式e(σ,g2)=e(h1,pkB)e(h2,pkC)成立,则验证通过,即Alice确实毕业于Bob大学,并持有前雇主Carol公司提供的离职证明。e(σ,g2)=e(h1,pkB)e(h2,pkC)式中,等式左边对聚合签名σ和乘法循环群G2上的基点g2(生成元)做双线性映射,等式右边分别对两组数h1,pkB,h2,pkC做双线性映射,然后做乘法运算,最后验证等式两边的结果是否一致。这一过程即:聚合签名σ为第一乘法循环群G1中的一个元,将聚合签名σ与第二乘法循环群G2中的生成元g2做双线性映射,得到第一数值e(σ,g2);对于每一身份凭证,将该身份凭证中的声明(claim1、claim2)和分布式标识符(DIDB、DIDC)链接后进行哈希处理,得到相应的哈希处理结果(h1=H(claim1||DIDB)、h2=H(claim2||DIDC)),将该哈希处理结果与颁发该身份凭证的凭证颁发系统的公钥(pkB、pkC)做双线性映射,得到对应该身份凭证的第二数值(e(h1,pkB)、e(h2,pkC)),在第一数值e(σ,g2)等于对应各身份凭证的第二数值的乘积e(h1,pkB)e(h2,pkC)的情况下,确定身份认证通过。
需要说明的是,上述提及的Alice、Alice即将入职的David公司、Bob大学、前雇主Carol公司所执行的操作都是由机器执行的,即上述的Alice执行的操作具体是由Alice操作的凭证持有系统执行的,David公司执行的操作具体是由David公司的验证系统执行的,Bob大学、前雇主Carol公司所执行的操作分别是Bob大学的系统、Carol公司的系统所执行的,Bob大学的系统、Carol公司的系统是两个不同的凭证颁发系统。
本发明实施例将聚合签名技术应用于可验证表述的生成过程,将多个签名压缩成为一个签名,并确定性地将签名者的DID标识符作为消息的一部分,使得每个消息两两不同,从而可以阻止针对聚合签名的伪造攻击。
图3是根据本发明一个实施例的凭证持有系统的主要模块示意图。
如图3所示,本发明实施例的凭证持有系统300,主要包括:身份凭证集合确定模块301、可验证表述生成模块302、可验证表述发送模块303。
身份凭证集合确定模块301,用于根据验证系统发送的认证请求确定身份凭证集合,认证请求用于请求对目标对象进行身份认证,身份凭证集合包括指定数量的身份凭证,身份凭证包括目标对象的声明以及凭证颁发系统的签名;
可验证表述生成模块302,用于基于身份凭证集合中的身份凭证生成可验证表述,可验证表述包括身份凭证集合中各身份凭证中的声明,以及由各身份凭证中的签名聚合得到的聚合签名;
可验证表述发送模块303,用于将可验证表述发送至验证系统进行验证,以完成对目标对象的身份认证。
身份凭证还可以包括凭证颁发系统的分布式标识符。凭证持有系统300还可以包括身份凭证获取模块,用于:根据凭证颁发系统的分布式标识符,得到凭证颁发系统的公钥;利用凭证颁发系统的公钥,对目标对象的声明加密,并将加密后的目标对象的声明发送至凭证颁发系统,以由凭证颁发系统生成并返回身份凭证。
在一个实施例中,可验证表述生成模块302具体可以用于:由各身份凭证中的签名聚合得到聚合签名;对身份凭证集合中各身份凭证中的声明、分布式标识符,以及聚合签名进行链接处理,并利用凭证持有系统的私钥对链接处理的结果添加凭证持有系统签名,凭证持有系统与目标对象相对应;根据身份凭证集合中各身份凭证中的声明和分布式标识符,聚合签名,以及凭证持有系统签名,生成可验证表述。可验证表述还包括该分布式标识符。
在另一个实施例中,可验证表述生成模块302具体可以用于:由各身份凭证中的签名聚合得到聚合签名;对身份凭证集合中各身份凭证中的声明以及聚合签名进行链接处理,并利用凭证持有系统的私钥对链接处理的结果添加凭证持有系统签名,凭证持有系统与目标对象相对应;根据身份凭证集合中各身份凭证中的声明、聚合签名以及凭证持有系统签名,生成可验证表述。
可验证表述生成模块302可通过将各身份凭证中的签名相乘,得到聚合签名。
图4是根据本发明一个实施例的用于身份认证的验证系统的主要模块示意图。
如图4所示,本发明一个实施例的用于身份认证的验证系统400主要包括:认证请求发送模块401、可验证表述接收模块402、身份认证模块403。
认证请求发送模块401,用于向凭证持有系统发送认证请求,认证请求用于请求对目标对象进行身份认证;
可验证表述接收模块402,用于接收凭证持有系统发送的可验证表述,可验证表述包括身份凭证集合中各身份凭证所含的目标对象的声明,以及由各身份凭证中的签名聚合得到的聚合签名,身份凭证集合是凭证持有系统根据认证请求确定的;
身份认证模块403,用于通过验证可验证表述,完成对目标对象的身份认证。
聚合签名为第一乘法循环群中的一个元。可验证表述还可以包括凭证颁发系统的分布式标识符。身份认证模块403具体用于:将聚合签名与第二乘法循环群中的生成元做双线性映射,得到第一数值;对于每一身份凭证,将该身份凭证中的声明和分布式标识符链接后进行哈希处理,得到相应的哈希处理结果,将该哈希处理结果与颁发该身份凭证的凭证颁发系统的公钥做双线性映射,得到对应该身份凭证的第二数值,凭证颁发系统的公钥是根据该身份凭证中的分布式标识符得到的;在第一数值等于对应各身份凭证的第二数值的乘积的情况下,确定身份认证通过。
可验证表述还包括凭证持有系统签名,凭证持有系统签名是凭证持有系统对身份凭证集合中各身份凭证中的声明、分布式标识符,以及聚合签名进行链接处理并添加签名得到的。
用于身份认证的验证系统400还可以包括签名验证模块,用于:对凭证持有系统签名进行验证,并确定凭证持有系统签名验证通过。
另外,在本发明实施例中凭证持有系统、用于身份认证的验证系统的具体实施内容,在上面所述身份认证方法中已经详细说明了,故在此重复内容不再说明。
图5示出了可以应用本发明实施例的身份认证方法或凭证持有系统、用于身份认证的验证系统的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的身份认证方法可由终端设备501、502、503或服务器505执行,相应地,凭证持有系统、用于身份认证的验证系统可设置于终端设备501、502、503或服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统600的结构示意图。图6示出的终端设备或服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考主要步骤示意图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤示意图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的主要步骤示意图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,主要步骤示意图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或主要步骤示意图中的每个方框、以及框图或主要步骤示意图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括身份凭证集合确定模块、可验证表述生成模块、可验证表述发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,身份凭证集合确定模块还可以被描述为“用于根据验证系统发送的认证请求确定身份凭证集合的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据验证系统发送的认证请求确定身份凭证集合,所述认证请求用于请求对目标对象进行身份认证,所述身份凭证集合包括指定数量的身份凭证,所述身份凭证包括所述目标对象的声明以及凭证颁发系统的签名;基于所述身份凭证集合中的身份凭证生成可验证表述,所述可验证表述包括所述身份凭证集合中各身份凭证中的所述声明,以及由所述各身份凭证中的签名聚合得到的聚合签名;将所述可验证表述发送至所述验证系统进行验证,以完成对所述目标对象的身份认证。或者,包括:向凭证持有系统发送认证请求,所述认证请求用于请求对目标对象进行身份认证;接收所述凭证持有系统发送的可验证表述,所述可验证表述包括身份凭证集合中各身份凭证所含的所述目标对象的声明,以及由所述各身份凭证中的签名聚合得到的聚合签名,所述身份凭证集合是所述凭证持有系统根据所述认证请求确定的;通过验证所述可验证表述,完成对所述目标对象的身份认证。
根据本发明实施例的技术方案,根据验证系统发送的认证请求确定身份凭证集合,认证请求用于请求对目标对象进行身份认证,身份凭证集合包括指定数量的身份凭证,身份凭证包括目标对象的声明、凭证颁发系统的分布式标识符以及凭证颁发系统的签名,基于身份凭证集合中的身份凭证生成可验证表述,可验证表述包括身份凭证集合中各身份凭证中的声明和分布式标识符,以及由各身份凭证中的签名聚合得到的聚合签名,将可验证表述发送至验证系统进行目标对象的身份认证。能够减少需要传送的签名个数,降低用户进行身份凭证传递时的通信开销,并且可以阻止针对聚合签名的伪造攻击。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (18)

1.一种身份认证方法,其特征在于,包括:
根据验证系统发送的认证请求确定身份凭证集合,所述认证请求用于请求对目标对象进行身份认证,所述身份凭证集合包括指定数量的身份凭证,所述身份凭证包括所述目标对象的声明以及凭证颁发系统的签名;
基于所述身份凭证集合中的身份凭证生成可验证表述,所述可验证表述包括所述身份凭证集合中各身份凭证中的所述声明,以及由所述各身份凭证中的签名聚合得到的聚合签名;
将所述可验证表述发送至所述验证系统进行验证,以完成对所述目标对象的身份认证。
2.根据权利要求1所述的方法,其特征在于,所述身份凭证还包括凭证颁发系统的分布式标识符;
所述根据验证系统发送的认证请求确定身份凭证集合之前,包括:
根据凭证颁发系统的分布式标识符,得到所述凭证颁发系统的公钥;
利用所述凭证颁发系统的公钥,对所述目标对象的声明加密,并将加密后的所述目标对象的声明发送至所述凭证颁发系统,以由所述凭证颁发系统生成并返回所述身份凭证。
3.根据权利要求2所述的方法,其特征在于,所述可验证表述还包括所述分布式标识符;
所述基于所述身份凭证集合中的身份凭证生成可验证表述,包括:
由所述各身份凭证中的签名聚合得到所述聚合签名;
对所述身份凭证集合中各身份凭证中的所述声明、所述分布式标识符,以及所述聚合签名进行链接处理,并利用凭证持有系统的私钥对所述链接处理的结果添加凭证持有系统签名,所述凭证持有系统与所述目标对象相对应;
根据所述身份凭证集合中各身份凭证中的所述声明和所述分布式标识符,所述聚合签名,以及所述凭证持有系统签名,生成所述可验证表述。
4.根据权利要求1所述的方法,其特征在于,所述基于所述身份凭证集合中的身份凭证生成可验证表述,包括:
由所述各身份凭证中的签名聚合得到所述聚合签名;
对所述身份凭证集合中各身份凭证中的所述声明以及所述聚合签名进行链接处理,并利用凭证持有系统的私钥对所述链接处理的结果添加凭证持有系统签名,所述凭证持有系统与所述目标对象相对应;
根据所述身份凭证集合中各身份凭证中的所述声明、所述聚合签名以及所述凭证持有系统签名,生成所述可验证表述。
5.根据权利要求3或4所述的方法,其特征在于,所述由所述各身份凭证中的签名聚合得到所述聚合签名,包括:
将所述各身份凭证中的签名相乘,得到所述聚合签名。
6.一种身份认证方法,其特征在于,包括:
向凭证持有系统发送认证请求,所述认证请求用于请求对目标对象进行身份认证;
接收所述凭证持有系统发送的可验证表述,所述可验证表述包括身份凭证集合中各身份凭证所含的所述目标对象的声明,以及由所述各身份凭证中的签名聚合得到的聚合签名,所述身份凭证集合是所述凭证持有系统根据所述认证请求确定的;
通过验证所述可验证表述,完成对所述目标对象的身份认证。
7.根据权利要求6所述的方法,其特征在于,所述聚合签名为第一乘法循环群中的一个元;所述可验证表述还包括所述身份凭证所含的凭证颁发系统的分布式标识符;
所述通过验证所述可验证表述,完成对所述目标对象的身份认证,包括:
将所述聚合签名与第二乘法循环群中的生成元做双线性映射,得到第一数值;
对于每一所述身份凭证,将该身份凭证中的所述声明和所述分布式标识符链接后进行哈希处理,得到相应的哈希处理结果,将该哈希处理结果与颁发该身份凭证的凭证颁发系统的公钥做双线性映射,得到对应该身份凭证的第二数值,所述凭证颁发系统的公钥是根据该身份凭证中的所述分布式标识符得到的;
在所述第一数值等于对应各身份凭证的所述第二数值的乘积的情况下,确定所述身份认证通过。
8.根据权利要求7所述的方法,其特征在于,所述可验证表述还包括凭证持有系统签名,所述凭证持有系统签名是所述凭证持有系统对所述身份凭证集合中各身份凭证中的所述声明、所述分布式标识符,以及所述聚合签名进行链接处理并添加签名得到的;
所述验证所述可验证表述之前,包括:对所述凭证持有系统签名进行验证,并确定所述凭证持有系统签名验证通过。
9.一种凭证持有系统,其特征在于,包括:
身份凭证集合确定模块,用于根据验证系统发送的认证请求确定身份凭证集合,所述认证请求用于请求对目标对象进行身份认证,所述身份凭证集合包括指定数量的身份凭证,所述身份凭证包括所述目标对象的声明以及凭证颁发系统的签名;
可验证表述生成模块,用于基于所述身份凭证集合中的身份凭证生成可验证表述,所述可验证表述包括所述身份凭证集合中各身份凭证中的所述声明,以及由所述各身份凭证中的签名聚合得到的聚合签名;
可验证表述发送模块,用于将所述可验证表述发送至所述验证系统进行验证,以完成对所述目标对象的身份认证。
10.根据权利要求9所述的系统,其特征在于,所述身份凭证还包括凭证颁发系统的分布式标识符;
还包括身份凭证获取模块,用于:
根据凭证颁发系统的分布式标识符,得到所述凭证颁发系统的公钥;
利用所述凭证颁发系统的公钥,对所述目标对象的声明加密,并将加密后的所述目标对象的声明发送至所述凭证颁发系统,以由所述凭证颁发系统生成并返回所述身份凭证。
11.根据权利要求10所述的系统,其特征在于,所述可验证表述还包括所述分布式标识符;
所述可验证表述生成模块还用于:
由所述各身份凭证中的签名聚合得到所述聚合签名;
对所述身份凭证集合中各身份凭证中的所述声明、所述分布式标识符,以及所述聚合签名进行链接处理,并利用凭证持有系统的私钥对所述链接处理的结果添加凭证持有系统签名,所述凭证持有系统与所述目标对象相对应;
根据所述身份凭证集合中各身份凭证中的所述声明和所述分布式标识符,所述聚合签名,以及所述凭证持有系统签名,生成所述可验证表述。
12.根据权利要求9所述的系统,其特征在于,所述可验证表述生成模块还用于:
由所述各身份凭证中的签名聚合得到所述聚合签名;
对所述身份凭证集合中各身份凭证中的所述声明以及所述聚合签名进行链接处理,并利用凭证持有系统的私钥对所述链接处理的结果添加凭证持有系统签名,所述凭证持有系统与所述目标对象相对应;
根据所述身份凭证集合中各身份凭证中的所述声明、所述聚合签名以及所述凭证持有系统签名,生成所述可验证表述。
13.根据权利要求11或12所述的系统,其特征在于,所述可验证表述生成模块通过将所述各身份凭证中的签名相乘,得到所述聚合签名。
14.一种用于身份认证的验证系统,其特征在于,包括:
认证请求发送模块,用于向凭证持有系统发送认证请求,所述认证请求用于请求对目标对象进行身份认证;
可验证表述接收模块,用于接收所述凭证持有系统发送的可验证表述,所述可验证表述包括身份凭证集合中各身份凭证所含的所述目标对象的声明,以及由所述各身份凭证中的签名聚合得到的聚合签名,所述身份凭证集合是所述凭证持有系统根据所述认证请求确定的;
身份认证模块,用于通过验证所述可验证表述,完成对所述目标对象的身份认证。
15.根据权利要求14所述的系统,其特征在于,所述聚合签名为第一乘法循环群中的一个元;所述可验证表述还包括所述身份凭证所含的凭证颁发系统的分布式标识符;
所述身份认证模块还用于:
将所述聚合签名与第二乘法循环群中的生成元做双线性映射,得到第一数值;
对于每一所述身份凭证,将该身份凭证中的所述声明和所述分布式标识符链接后进行哈希处理,得到相应的哈希处理结果,将该哈希处理结果与颁发该身份凭证的凭证颁发系统的公钥做双线性映射,得到对应该身份凭证的第二数值,所述凭证颁发系统的公钥是根据该身份凭证中的所述分布式标识符得到的;
在所述第一数值等于对应各身份凭证的所述第二数值的乘积的情况下,确定所述身份认证通过。
16.根据权利要求15所述的系统,其特征在于,所述可验证表述还包括凭证持有系统签名,所述凭证持有系统签名是所述凭证持有系统对所述身份凭证集合中各身份凭证中的所述声明、所述分布式标识符,以及所述聚合签名进行链接处理并添加签名得到的;
所述系统还包括签名验证模块,用于:对所述凭证持有系统签名进行验证,并确定所述凭证持有系统签名验证通过。
17.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN202111016977.9A 2021-08-31 2021-08-31 一种身份认证方法以及凭证持有系统和验证系统 Pending CN113918899A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111016977.9A CN113918899A (zh) 2021-08-31 2021-08-31 一种身份认证方法以及凭证持有系统和验证系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111016977.9A CN113918899A (zh) 2021-08-31 2021-08-31 一种身份认证方法以及凭证持有系统和验证系统

Publications (1)

Publication Number Publication Date
CN113918899A true CN113918899A (zh) 2022-01-11

Family

ID=79233565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111016977.9A Pending CN113918899A (zh) 2021-08-31 2021-08-31 一种身份认证方法以及凭证持有系统和验证系统

Country Status (1)

Country Link
CN (1) CN113918899A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666168A (zh) * 2022-05-23 2022-06-24 浙江毫微米科技有限公司 去中心化身份凭证验证方法、装置,以及,电子设备
CN114866260A (zh) * 2022-07-05 2022-08-05 杭州天谷信息科技有限公司 一种变色龙哈希分布式身份使用方法和系统
CN116192540A (zh) * 2023-05-05 2023-05-30 敏于行(北京)科技有限公司 动态组合可验证凭证的验证方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666168A (zh) * 2022-05-23 2022-06-24 浙江毫微米科技有限公司 去中心化身份凭证验证方法、装置,以及,电子设备
CN114866260A (zh) * 2022-07-05 2022-08-05 杭州天谷信息科技有限公司 一种变色龙哈希分布式身份使用方法和系统
CN114866260B (zh) * 2022-07-05 2022-10-28 杭州天谷信息科技有限公司 一种变色龙哈希分布式身份使用方法和系统
CN116192540A (zh) * 2023-05-05 2023-05-30 敏于行(北京)科技有限公司 动态组合可验证凭证的验证方法及系统

Similar Documents

Publication Publication Date Title
US20220321359A1 (en) Methods and systems for ownership verification using blockchain
US9992189B2 (en) Generation and validation of derived credentials
CA3010116C (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US8010795B2 (en) Secure information transfer using dedicated public key pairs
CN113918899A (zh) 一种身份认证方法以及凭证持有系统和验证系统
US9100171B1 (en) Computer-implemented forum for enabling secure exchange of information
US9565211B2 (en) Managing exchanges of sensitive data
CN110189184B (zh) 一种电子发票存储方法和装置
EP3133791B1 (en) Double authentication system for electronically signed documents
CN106161435A (zh) 一种基于Nginx的双向认证方法及装置
CN111784887A (zh) 一种用户访问的授权放行方法、装置以及系统
US8613057B2 (en) Identity management facilitating minimum disclosure of user data
TW202131659A (zh) 用以儲存已認證資料於區塊鏈上之電腦實行方法及系統
Li A verifiable credentials system with privacy-preserving based on blockchain
CN117561508A (zh) 可验证凭证的跨会话颁发
CN116975936B (zh) 金融资质证明方法、金融资质验证方法
CN112332980B (zh) 一种数字证书签发和验签方法、设备及存储介质
WO2019184206A1 (zh) 身份认证方法及装置
US10608997B1 (en) Context-based data access control
Kim et al. Certificate sharing system for secure certificate distribution in mobile environment
CN114548986A (zh) 支付方法和支付安全码生成方法、装置、设备与存储介质
CN112541199A (zh) 基于区块链的电子存证完整性验证方法和电子设备
CN114157414B (zh) 一种关于数字货币的身份凭证生成方法、验证方法及系统
TWI767682B (zh) Ecqv衍生子憑證產生系統、方法及電腦可讀媒介
CN111510299B (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