本发明涉及数据安全,涉及一种去中心化数字身份的隐私保护方法,尤其是涉及一种面向去中心化身份的用户属性零知识证明方法及设备。
背景技术:
1、数字身份是构建数字经济时代信任体系的关键要素之一,一切电子政务、电子商务和公共服务都必须建立在真实有效的数字身份基础之上。随着移动互联网应用的迅速渗透,用户个人身份信息被大规模的采集、处理和“共享”。然而,在当前中心统筹式的身份管理模式下,中心机构安全和隐私保护能力的欠缺,导致用户面临着越来越多的身份信息泄露风险。近年来,用户身份信息的隐私保护问题受到广泛关注。区块链技术凭借其去中心化、公开透明、防篡改、可追溯等特征,正在发展成为构建未来数字经济信任体系的关键技术之一。
2、针对数字身份的去中心化和自主主权身份需求,万维网联盟的凭证社区组主导研制了一套通过分布式身份标识(decentralized identifier,did)来实现用户身份自主管理的方案。did是以区块链技术和did协议为基础构建的,did协议主要包括去中心化身份标识符did、可验证凭证和可验证表达。此方案下,颁发者将可验证凭证颁发给持有者,持有者将一个或多个凭证封装为可验证表达提供给验证者,验证者通过签名机制来验证用户身份。其中,可以通过可验证表达实现用户属性的选择性披露。一般的方法是颁发者在可验证凭证中构建哈希承诺或默克尔树等可验证结构生成原始用户属性声明的承诺;持有者在构造可验证表达的证明时,选择性披露必要的声明字段和哈希隐藏的声明字段组成证明;验证者通过对比证明结合验证路径生成的承诺和原始凭证的承诺是否一致,来判断持有者披露字段的有效性和合法性。但是在此方案下,没有涉及到用户属性的零知识证明方案。此外,哈希承诺和默克尔树等可验证结构为了防止哈希碰撞需要引入额外的随机种子来生成盐值,且其证明大小和时证明间会随着凭证中字段的增加而增加,提高了方案应用的复杂度。
技术实现思路
1、本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种验证效率高的面向去中心化身份的用户属性零知识证明方法及设备。
2、本发明的目的可以通过以下技术方案来实现:
3、一种面向去中心化身份的用户属性零知识证明方法,包括以下步骤:
4、获取基于拟隐藏声明字段构建的可验证凭证,该可验证凭证包括向量承诺、承诺签名和断言数组,基于拟隐藏声明字段一次性构建;
5、在接收到验证请求时,基于所述断言数组获取与所述验证请求相应的断言在断言数组中的位置,生成存在性证明;
6、基于向量承诺、断言在断言数组中的位置、该位置处的值、存在性证明和承诺签名构造可验证表达,所述可验证表达用于响应所述验证请求。
7、进一步地,所述可验证凭证的构建具体包括:
8、根据所述拟隐藏声明字段定义断言数组属性,构建断言数组;
9、基于所述断言数组构建向量承诺;
10、对所述向量承诺进行签名,生成承诺签名;
11、基于所述向量承诺、承诺签名和断言数组构建可验证凭证。
12、进一步地,所述断言数组属性包括采样粒度、采样范围、边界处理和断言格式。
13、进一步地,所述向量承诺的构建过程包括:
14、基于一安全参数λ、一常量b以及断言数组的数组长度n,获取一公共参数pp;
15、基于所述断言数组和公共参数pp构建获得向量承诺。
16、进一步地,所述可验证凭证还包括凭证元数据、被声明人的did、用户属性声明和凭证数字证明。
17、进一步地,所述凭证元数据包括凭证类型、签发标准、颁发者did、颁发时间和到期时间。
18、进一步地,所述可验证表达还包括表达元数据、可验证凭证子项和表达数字证明。
19、进一步地,所述表达元数据包括构建标准和表达类型。
20、进一步地,所述可验证凭证子项包含子凭证元数据、用户属性声明和子凭证数字证明。
21、进一步地,所述数字证明为签发角色对文档签署的以证明签发角色身份的数字签名,包括签名方法、签名值和签署人。
22、本发明还提供一种电子设备,包括:
23、一个或多个处理器;
24、存储器;和
25、被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如上所述面向去中心化身份的用户属性零知识证明方法的指令。
26、与现有技术相比,本发明用于实现用户属性值的零知识等值证明和零知识范围证明,即验证者可以验证披露值等于、大于或小于断言数组中的某个值,具有以下有益效果:
27、1、主流的零知识证明方案如zk-snark或zk-stark等,会引入颁发者、持有者和验证者更多的交互,不符合去中心化身份场景的轻量化需求。本发明通过巧妙利用断言数组结合可验证结构,实现了轻量化的用户属性声明零知识证明,只需要颁发者构建一次可验证凭证,减少交互,提高效率。
28、2、本发明利用向量承诺的密码学特性,构建基于向量承诺的可验证结构,利用向量承诺证明大小固定、证明时间较快、存储占用较少等优势,减少零知识证明的大小和证明时间,降低持有者的存储开销,提高了生成证明的效率。
1.一种面向去中心化身份的用户属性零知识证明方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的面向去中心化身份的用户属性零知识证明方法,其特征在于,所述可验证凭证的构建具体包括:
3.根据权利要求2所述的面向去中心化身份的用户属性零知识证明方法,其特征在于,所述断言数组属性包括采样粒度、采样范围、边界处理和断言格式。
4.根据权利要求2所述的面向去中心化身份的用户属性零知识证明方法,其特征在于,所述向量承诺的构建过程包括:
5.根据权利要求1所述的面向去中心化身份的用户属性零知识证明方法,其特征在于,所述可验证凭证还包括凭证元数据、被声明人的did、用户属性声明和凭证数字证明。
6.根据权利要求5所述的面向去中心化身份的用户属性零知识证明方法,其特征在于,所述凭证元数据包括凭证类型、签发标准、颁发者did、颁发时间和到期时间。
7.根据权利要求1所述的面向去中心化身份的用户属性零知识证明方法,其特征在于,所述可验证表达还包括表达元数据、可验证凭证子项和表达数字证明。
8.根据权利要求7所述的面向去中心化身份的用户属性零知识证明方法,其特征在于,所述表达元数据包括构建标准和表达类型。
9.根据权利要求7所述的面向去中心化身份的用户属性零知识证明方法,其特征在于,所述可验证凭证子项包含子凭证元数据、用户属性声明和子凭证数字证明。
10.根据权利要求5、7或9所述的面向去中心化身份的用户属性零知识证明方法,其特征在于,所述数字证明为签发角色对文档签署的以证明签发角色身份的数字签名,包括签名方法、签名值和签署人。
11.一种电子设备,其特征在于,包括: