本发明涉及区块链技术及分布式数字身份领域,尤其涉及一种匿名凭证的验证方法和装置。
背景技术:
1、web3.0下基于不同基础设施的应用之间的互通需要有一套基于相同标准构建的数字身份,分布式数字身份由用户的许多身份属性构成,用户可以通过自我掌控的私钥进行数字签名来证明其身份属性的所有权,然而在匿名的情况下其身份属性的真实性及可验证性无法保证。目前业界提出以零知识证明的方式将用户的属性按需选择性披露给应用服务,由此实现用户的隐私保护。然而此类方案在安全性、使用便捷性上仍然存在较大的缺陷,比如:
2、1、当用户需要证明多个属性时,使用零知识证明的次数会随着证明属性个数的增加而增加。因此,在需要包含若干属性的复杂的访问策略时,这种匿名凭证系统的认证效率低。
3、2、零知识证明虽然具备强隐私的特性,但其在初始化阶段需要可信设置,系统参数如果泄漏其安全性存在隐患。同时该算法目前存在计算效率低、对系统资源占用大等问题,因而其使用上缺乏一定的灵活性。
技术实现思路
1、有鉴于此,本发明提供一种匿名凭证的验证方法和装置,以解决上述提及的至少一个问题。
2、为了实现上述目的,本发明采用以下方案:
3、根据本发明的第一方面,提供一种匿名凭证的验证方法,所述方法包括:接收应用服务商发送的访问策略;根据所述访问策略判断是否缺少对应用户属性的可验证凭证;响应于缺少对应用户属性的可验证凭证,将用户匿名公钥以及由所述用户的所有属性数据所生成的梅克尔树根一起发送给可信授权机构请求颁发可验证凭证;接收所述可信授权机构对所述梅克尔树根和所述用户匿名公钥一起进行签名的可验证凭证;利用使用成员列表进行用户签名,并根据所述访问策略将包含待验证用户属性的待验证凭证发送给所述应用服务商进行验证;响应于未缺少应用户属性的可验证凭证,则直接利用使用成员列表进行用户签名,并根据所述访问策略将包含待验证用户属性的待验证凭证发送给所述应用服务商进行验证。
4、根据本发明的第二方面,提供一种匿名凭证的验证装置,所述验证装置包括:策略接收单元,用于接收应用服务商发送的访问策略;判断单元,用于根据所述访问策略判断是否缺少对应用户属性的可验证凭证;请求发送单元,用于响应于缺少对应用户属性的可验证凭证,将用户匿名公钥以及由所述用户的所有属性数据所生成的梅克尔树根一起发送给可信授权机构请求颁发可验证凭证;凭证接收单元,用于接收所述可信授权机构对所述梅克尔树根和所述用户匿名公钥一起进行签名的可验证凭证;签名验证单元,用于利用使用成员列表进行用户签名,并根据所述访问策略将包含待验证用户属性的待验证凭证发送给所述应用服务商进行验证。
5、根据本发明的第三方面,提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,处理器执行所述计算机程序时实现上述方法的步骤。
6、根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
7、由上述技术方案可知,本发明提供的匿名凭证的验证方法和装置,通过梅克尔树路径验证的方式,能够实现在不知道用户凭据具体内容的情况下进行可信验证,保护了用户不想披露更多属性的隐私。另外,本实施例采用使用成员列表进行用户签名,保证了用户的身份匿名。
1.一种匿名凭证的验证方法,其特征在于,所述方法包括:
2.如权利要求1所述的匿名凭证的验证方法,其特征在于,所述方法还包括:
3.如权利要求2所述的匿名凭证的验证方法,其特征在于,所述可验证凭证包括用户身份标识、用户的属性数据、用户所有属性的梅克尔树根以及所述梅克尔树根和所述用户匿名公钥的可信授权机构签名。
4.如权利要求3所述的匿名凭证的验证方法,其特征在于,所述可信授权机构在发送所述可验证凭证时,同时记录所述用户身份标识和所述用户匿名公钥的对应关系,用于后续的监管审计。
5.如权利要求2所述的匿名凭证的验证方法,其特征在于,所述待验证凭证包括用户身份标识、待验证的用户属性数据和其他属性数据的哈希值、用户所有属性的梅克尔树根、待验证的用户属性数据的用户签名以及用户所有属性的梅克尔树根的可信授权机构签名。
6.如权利要求5所述的匿名凭证的验证方法,其特征在于,所述应用服务商收到所述待验证凭证后,先验证可信授权机构签名,验证用户是否拥有访问策略中的属性,然后验证用户签名,验证用户是否属于所述使用成员列表中的一员。
7.如权利要求1所述的匿名凭证的验证方法,其特征在于,所述使用成员列表是由所述可信授权机构分配的,包含了各个成员用户的公钥。
8.一种匿名凭证的验证装置,其特征在于,所述验证装置包括:
9.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。