CN114944937B - 分布式数字身份验证方法、系统、电子设备及存储介质 - Google Patents
分布式数字身份验证方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114944937B CN114944937B CN202210436898.1A CN202210436898A CN114944937B CN 114944937 B CN114944937 B CN 114944937B CN 202210436898 A CN202210436898 A CN 202210436898A CN 114944937 B CN114944937 B CN 114944937B
- Authority
- CN
- China
- Prior art keywords
- holder
- verifiable
- distributed digital
- verifiable statement
- cryptogram
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 127
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004364 calculation method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 abstract description 8
- 230000014509 gene expression Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006854 communication Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 206010039722 scoliosis Diseases 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002427 irreversible effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种分布式数字身份验证方法、系统、电子设备及存储介质。上述方法包括:区块链服务端为至少一个发行者端注册发行者分布式数字身份标识,且部署有密文可验证声明托管合约,为至少一个持有者端注册持有者分布式数字身份标识;发行者端根据持有者端发送的可验证声明申请,生成与所述持有者分布式数字身份标识对应的可验证声明和密文可验证声明;发行者端将所述可验证声明发送给持有者端,并将所述密文可验证声明发送到密文可验证声明托管合约中保存;验证者端根据持有者端出示的验证信息中的持有者分布式数字身份标识,从区块链服务端上查询是否存在对应的密文可验证声明,从而验证持有者端是否持有可验证声明。该方法可简化验证流程。
Description
技术领域
本申请涉及区块链技术领域,具体涉及一种分布式数字身份验证方法。本申请同时涉及一种分布式数字身份验证系统、电子设备及计算机可读存储介质。
背景技术
目前,基于区块链的数字身份应用技术中,可验证声明的验证流程一般包括:用户出示可验证声明,验证者从链上拉取发行者的公钥,并验证可验证声明的签名及有效性、可验证声明的声明信息等。即使用户仅想证明自己拥有发行者发行的有效可验证声明,不需要验证可验证声明的声明信息,也需要向验证者出示可验证声明。这种可验证声明的验证流程较为繁琐,验证效率较低。
发明内容
本申请提供一种分布式数字身份验证方法、系统、电子设备及计算机可读存储介质,以解决现有可验证声明的验证流程较为繁琐,验证效率较低的问题。
本申请提供一种分布式数字身份验证方法,其特殊之处在于,包括:
区块链服务端为至少一个发行者端注册发行者分布式数字身份标识;
所述区块链服务端部署有密文可验证声明托管合约,所述密文可验证声明托管合约用于存储密文可验证声明;
所述区块链服务端为至少一个持有者端注册持有者分布式数字身份标识;
所述发行者端根据所述持有者端发送的可验证声明申请,生成与所述持有者分布式数字身份标识对应的可验证声明,并对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明;
所述发行者端将所述可验证声明发送给所述持有者端,并将所述密文可验证声明发送到所述区块链服务端的密文可验证声明托管合约中保存;
所述持有者端向至少一个验证者端出示验证信息,所述验证信息包括所述持有者分布式数字身份标识;
所述验证者端根据所述持有者分布式数字身份标识,从所述区块链服务端的密文可验证声明托管合约上查询是否存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,从而验证所述持有者端是否持有所述发行者端发行的有效可验证声明。
可选地,所述验证所述持有者端是否持有所述发行者端发行的有效可验证声明,包括:
若所述密文可验证声明托管合约上存储有与所述持有者分布式数字身份标识对应的所述密文可验证声明,查询所述密文可验证声明中的失效日期;若当前日期未超过失效日期,则通过所述验证;若当前日期已超过失效日期,则不予通过所述验证;
若所述密文可验证声明托管合约上未存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,则不予通过所述验证。
可选地,对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明,包括:
利用哈希算法计算所述可验证声明中声明信息的默克尔根,从而得到密文可验证声明。
可选地,所述密文可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息和声明信息的默克尔根。
可选地,所述可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息、声明信息和声明信息的默克尔根。
可选地,所述验证信息还包括:选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数。
可选地,还包括:所述验证者端根据所述区块链服务端的密文可验证声明托管合约上存储的与所述持有者分布式数字身份标识对应的、且当前日期未超过失效日期的所述密文可验证声明,验证所述选择性披露数据是否正确。
可选地,所述验证所述选择性披露数据是否正确,包括:
根据所述选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数进行哈希计算,得到待验证默克尔根;
将所述待验证默克尔根与所述密文可验证声明中声明信息的默克尔根进行比较,若一致,则所述选择性披露数据正确;若不一致,则所述选择性披露数据不正确。
一种分布式数字身份验证系统,其特殊之处在于,包括:
区块链服务端,至少一个发行者端、持有者端和验证者端;
所述区块链服务端包括第一注册单元、第二注册单元和存储单元;
所述第一注册单元用于为至少一个发行者端注册发行者分布式数字身份标识;
所述第二注册单元用于为至少一个持有者端注册持有者分布式数字身份标识;
所述存储单元用于部署密文可验证声明托管合约,所述密文可验证声明托管合约用于存储密文可验证声明;
所述发行者端包括第一生成单元、第二生成单元和发送单元;
所述第一生成单元用于根据所述持有者端发送的可验证声明申请,生成与所述持有者分布式数字身份标识对应的可验证声明;
所述第二生成单元用于对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明;
所述发送单元用于将所述可验证声明发送给所述持有者端,并将所述密文可验证声明发送到所述区块链服务端的密文可验证声明托管合约中保存;
所述持有者端包括出示单元;
所述出示单元用于向至少一个验证者端出示验证信息,所述验证信息包括所述持有者分布式数字身份标识;
所述验证者端包括查询验证单元;
所述查询验证单元用于根据所述持有者分布式数字身份标识,从所述区块链服务端的密文可验证声明托管合约上查询是否存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,从而验证所述持有者端是否持有所述发行者端发行的有效可验证声明。
可选地,所述验证所述持有者端是否持有所述发行者端发行的有效可验证声明,包括:
若所述密文可验证声明托管合约上存储有与所述持有者分布式数字身份标识对应的所述密文可验证声明,查询所述密文可验证声明中的失效日期;若当前日期未超过失效日期,则通过所述验证;若当前日期已超过失效日期,则不予通过所述验证;
若所述密文可验证声明托管合约上未存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,则不予通过所述验证。
可选地,所述对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明,包括:
利用哈希算法计算所述可验证声明中声明信息的默克尔根,从而得到密文可验证声明。
可选地,所述密文可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息和声明信息的默克尔根。
可选地,所述可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息、声明信息和声明信息的默克尔根。
可选地,所述验证信息还包括:选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数。
可选地,所述查询验证单元还用于根据所述区块链服务端的密文可验证声明托管合约上存储的与所述持有者分布式数字身份标识对应的、且当前日期未超过失效日期的所述密文可验证声明,验证所述选择性披露数据是否正确。
可选地,所述验证所述选择性披露数据是否正确,包括:
根据所述选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数进行哈希计算,得到待验证默克尔根;
将所述待验证默克尔根与所述密文可验证声明中声明信息的默克尔根进行比较,若一致,则所述选择性披露数据正确;若不一致,则所述选择性披露数据不正确。
一种电子设备,其特殊之处在于,包括:
处理器和存储器;
所述存储器用于存储程序和数据,所述处理器调用存储器存储的程序,以执行上述分布式数字身份验证方法。
一种计算机可读存储介质,其特殊之处在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述分布式数字身份验证方法。
与现有技术相比,本申请具有以下优点:
本申请提供的分布式数字身份验证方法,发行者端在接收到持有者端发送的可验证声明申请后,为所述持有者端生成可验证声明,并对所述可验证声明中的声明信息进行哈希加密,形成密文可验证声明;发行者端将所述可验证声明发送给持有者端,将所述密文可验证声明保存到区块链服务端的密文可验证声明托管合约上,这样,在持有者仅想证明自己拥有发行者端发行的有效可验证声明时,持有者端只需向验证者端出示包括持有者分布式数字身份标识的验证信息,验证者端就可以根据所述持有者分布式数字身份标识从区块链服务端的密文可验证声明托管合约上查询是否存在对应的密文可验证声明,从而进行验证。该方法能够简化可验证声明有效性验证流程,避免持有者频繁出示可验证声明,提高了验证效率。
附图说明
图1是现有的数字身份验证系统的结构框图。
图2是本申请分布式数字身份验证方法第一实施例的流程图。
图3是本申请分布式数字身份验证方法第二实施例的信令流程图。
图4是本申请分布式数字身份验证方法第二实施例中对声明信息进行哈希加密形成的默克尔树的示意图。
图5是本申请分布式数字身份验证方法第三实施例的信令流程图。
图6是本申请分布式数字身份验证系统一个实施例的结构框图。
图7是本申请一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、优点和特征更加清楚,以下结合附图和具体实施方式对本申请提出的分布式数字身份验证方法、系统、电子设备及计算机可读存储介质作进一步详细说明。在下面的描述中,阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施方式的限制。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性,以及特定的顺序或先后次序。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,术语“多个”是指两个或两个以上。术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。术语“包括”和“具有”以及他们的任何变形,旨在覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
区块链是一个信息技术领域的术语,从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础。而区块链丰富的应用场景,基本上都是基于区块链能够解决信息不对称的问题,实现多个主体之间的协作信任与一致行动。
本申请提供的分布式数字身份验证方法,就是基于区块链的去中心化可信存储特征。用户身份相关数据锚定在区块链数据库上,其优势在于避免身份数据被中心化权威机构控制;认证过程不依赖身份发行方;实现用户自己对身份的控制和管理。
特别说明,以下会对将要出现的专业名词进行解析,以便于理解。
分布式身份不止是人,包括组织,甚至未来也包括物品。这些人或者组织、物品不简单依靠于原先中心化权威机构,无法被拿走或者删除,而且是终身携带的身份。
数字身份通常由身份标识符以及与之关联的属性声明来表示,分布式数字身份包括:分布式数字身份标识符和数字身份凭证(声明集合)两部分。
分布式数字身份标识(Decentralized Identifiers,DID)是由字符串组成的标识符,用来代表一个数字身份,是一种去中心化的可验证的数字标识符,不需要中央注册机构就可以实现全球唯一性,具有分布式、自主可控、跨链复用等特点。实体可自主完成分布式数字身份标识的注册、解析、更新或者撤销操作。通常,一个实体可以拥有多个身份,每个身份被分配唯一的分布式数字身份标识,以及与之关联的非对称密钥。不同的身份之间没有关联信息,从而有效地避免了所有者身份信息的归集。
分布式数字身份标识具体解析为分布式数字身份标识文档(DID Document,DID文档),分布式数字身份标识文档包括:分布式数字身份标识,由于分布式数字身份标识的全局唯一特性,因此在分布式数字身份标识文档中只能有一个分布式数字身份标识;公钥,用于数字签名及其他加密操作,这些操作是实现身份验证以及与服务端点建立安全通信等目的的基础;分布式数字身份标识持有者的其他属性描述。
声明(claims)是指与身份关联的属性信息,这个术语起源于基于声明的数字身份,一种断言(assert)数字身份的方式,独立于任何需要依赖它的特定系统。声明信息通常包括:诸如姓名,电子邮件地址、年龄、职业等。声明可以是一个身份所有者(如个人或组织)自己发出的,也可以是由其他声明发行人发出的,当声明由发行人签发时被称为可验证声明。
可验证声明(Verifiable Credential,VC)提供了一种规范来描述实体所具有的某些属性,实现基于证据的信任。分布式数字身份标识持有者可以通过可验证声明,向其他实体(个人、组织、具体事物等)证明自己的某些属性是可信的。同时,结合数字签名和零知识证明等密码学技术,可以使得声明更加安全可信,并进一步保障用户隐私不被侵犯。
可验证表达(Verifiable presentation,VP)是可验证声明持有者向验证者表明自己身份的数据。一般情况下,持有者向验证者直接出示可验证声明全文即可,但在某些情况下,出于隐私保护的需要,持有者并不需要出示完整的可验证声明内容,而是选择性披露某些属性,或者不披露任何属性,只需要证明某个断言即可。
区块链智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议,允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
哈希算法(Hash)将任意长度的二进制值映射为较短的固定长度的二进制值,即哈希值。哈希算法具有不可逆性,即给定一个输入值,容易计算出它的哈希值,但已知一个哈希值,根据同样的算法不能得到原输入值。使用Hash算法可以提高存储空间的利用率,提高数据的查询效率,也可以做数字签名来保障数据传递的安全性。
在分布式数字身份的可验证声明验证架构中,包括以下几种参与者:
发行者(Issuer),拥有用户数据并能开具可验证声明的实体,如政府、银行、大学等机构和组织。发行者可以吊销可验证声明。
持有者(Holder),持有者即用户,用户向发行者请求、收到、持有可验证声明的实体,向验证者出示可验证声明,开具的可验证声明可以自我保存,方便以后再次使用。持有者可能将一个或多个可验证声明转让给其他人,也可以将一个或多个可验证声明呈现给验证者,且可选择性地出示可验证表达。持有者可以删除可验证声明。
验证者(Verifier),接收可验证声明或可验证表达并进行验证,由此可以提供给出示可验证声明或可验证表达的用户某种类型的服务。验证者验证可验证声明或可验证表达的真实性,也包括检查可验证声明的吊销状态。
标识符注册机构(Verifiable Data Registry),维护分布式数字身份标识的数据库,如某条区块链、分布式账本,用于存储分布式数字身份标识和分布式数字身份标识文档,通过分布式数字身份标识可以查询到对应的分布式数字身份标识文档。
现有的数字身份验证系统的结构如图1所示,其工作流程包括:
发行者101向标识符注册机构104注册发行者分布式数字身份标识,成为发行者;持有者102向标识符注册机构104注册持有者分布式数字身份标识;持有者102向发行者101申请可验证声明;发行者101验证持有者102身份的合法性和有效性后,向持有者102发行可验证声明;持有者102向验证者103出示可验证声明并请求提供服务;验证者103通过标识符注册机构104验证持有者签名、发行者身份及签名、声明信息,验证成功后为持有者102提供服务。
举例来说,小明是一个应届毕业生,小明和学校都分别注册了分布式数字身份标识,毕业时学校根据小明的学习情况(入学时间、毕业时间、专业、是否结业等信息)以及小明提交的自己的分布式数字身份标识,生成毕业证可验证声明,并颁发给小明。小明拿到毕业证可验证声明后去公司入职,公司会要求验证小明是否拥有毕业证可验证声明以及毕业证可验证声明上的学历信息。小明出示毕业证可验证声明,公司先验证小明的签名,保证毕业证可验证声明是小明提交的,且没有被篡改;然后验证学校身份是否可信,是否为可以颁发毕业证可验证声明的权威机构;再验证学校签名,确认这个证书确实是可信的学校颁发的;最后验证毕业证可验证声明里的声明信息,得到小明的学历信息。这里的小明就是持有者102,学校是发行者101,公司是验证者103。
根据现有的数字身份验证系统工作流程,可以看出,持有者102不管是要证明自己拥有发行者101发行的有效可验证声明,还是要验证可验证声明的声明信息,都要出示可验证声明,且验证过程十分繁琐,通信过程中的数据量较大,降低了验证效率。
对此,本申请第一实施例提供一种分布式数字身份验证方法,其中的参与者包括:区块链服务端、至少一个持有者端、发行者端和验证者端,区块链服务端可以是常见的数字身份云服务器或者数字身份管理网站,持有者端可以是持有者所使用的手机、电脑或者数字身份应用账户,发行者端可以是能够发行可验证声明的发行者所使用的手机、电脑或者可验证声明发行账户,验证者端可以是验证者所使用的手机、电脑或者数字身份验证账户。
本实施例提供的分布式数字身份验证方法,如图2所示,包括以下步骤:
S201,区块链服务端为至少一个发行者端注册发行者分布式数字身份标识;所述区块链服务端部署有密文可验证声明托管合约,所述密文可验证声明托管合约用于存储密文可验证声明。
S202,所述区块链服务端为至少一个持有者端注册持有者分布式数字身份标识。
S203,所述发行者端根据所述持有者端发送的可验证声明申请,生成与所述持有者分布式数字身份标识对应的可验证声明,并对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明。
其中,对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明,包括:利用哈希算法计算所述可验证声明中声明信息的默克尔根,从而得到密文可验证声明。
所述密文可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息和声明信息的默克尔根。
所述可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息、声明信息和声明信息的默克尔根。
S204,所述发行者端将所述可验证声明发送给所述持有者端,并将所述密文可验证声明发送到所述区块链服务端的密文可验证声明托管合约中保存。
S205,所述持有者端向至少一个验证者端出示验证信息,所述验证信息包括所述持有者分布式数字身份标识。
S206,所述验证者端根据所述持有者分布式数字身份标识,从所述区块链服务端的密文可验证声明托管合约上查询是否存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,从而验证所述持有者端是否持有所述发行者端发行的有效可验证声明。具体如下:
若所述密文可验证声明托管合约上存储有与所述持有者分布式数字身份标识对应的所述密文可验证声明,查询所述密文可验证声明中的失效日期;若当前日期未超过失效日期,则所述持有者端持有所述发行者端发行的有效可验证声明,通过所述验证;若当前日期已超过失效日期,则所述持有者端持有所述发行者端发行的失效可验证声明,不予通过所述验证;
若所述密文可验证声明托管合约上未存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,则所述持有者端未持有所述发行者端发行的有效可验证声明,不予通过所述验证。
在其他实施例中,所述验证信息还包括:选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数。这样的验证信息即一种可验证表达。
该方法还包括以下步骤:
所述验证者端根据所述区块链服务端的密文可验证声明托管合约上存储的与所述持有者分布式数字身份标识对应的、且当前日期未超过失效日期的所述密文可验证声明,验证所述选择性披露数据是否正确。具体如下:
根据所述选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数进行哈希计算,得到待验证默克尔根;
将所述待验证默克尔根与所述密文可验证声明中声明信息的默克尔根进行比较,若一致,则所述选择性披露数据正确;若不一致,则所述选择性披露数据不正确。
本申请第二实施例提供一种分布式数字身份验证方法,主要是针对可验证声明的有效性进行验证,如图3所示,包括以下步骤:
S301,至少一个发行者端向区块链服务端注册发行者分布式数字身份标识;
S302,所述发行者端注册成功后,在所述区块链服务端上部署用于存储密文可验证声明的密文可验证声明托管合约;
S303,至少一个持有者端向所述区块链服务端注册持有者分布式数字身份标识;
S304,所述持有者端注册成功后,向所述发行者端发送可验证声明申请;
S305,所述发行者端接收到所述持有者端发送的所述可验证声明申请后,为所述持有者端生成与所述持有者分布式数字身份标识对应的可验证声明,并对所述可验证声明中的声明信息进行哈希加密,形成密文可验证声明;
S306,所述发行者端将所述可验证声明发送给所述持有者端,并将所述密文可验证声明保存到所述区块链服务端的密文可验证声明托管合约上;
S307,所述持有者端接收到所述发行者端发送的所述可验证声明后,向至少一个验证者端出示验证信息,所述验证信息包括所述持有者分布式数字身份标识;
S308,所述验证者端根据所述验证信息中的所述持有者分布式数字身份标识,从所述区块链服务端的密文可验证声明托管合约上查询是否存在对应的密文可验证声明,从而验证所述持有者端是否持有所述发行者端发行的有效可验证声明。
下面结合图3,对上述各步骤进行详细说明。
S301,至少一个发行者端向区块链服务端注册发行者分布式数字身份标识。
至少一个发行者端向区块链服务端注册发行者分布式数字身份标识后,会获得与所述发行者分布式数字身份标识对应的发行者分布式数字身份标识文档,并且所述发行者分布式数字身份标识和所述发行者分布式数字身份标识文档也会保存在区块链服务端上,发行者端的用户成为发行者,发行者有权限为持有者发行可验证声明。
S302,所述发行者端注册成功后,在所述区块链服务端上部署用于存储密文可验证声明的密文可验证声明托管合约。
发行者端注册成功后,还需要在区块链服务端上部署密文可验证声明托管合约,密文可验证声明托管合约主要提供密文可验证声明的存储、创建createMemberVC、更新updateMemberVC、撤销revokeMemberVC、查询queryMemberVC和凭证有效检查memberVCValid等操作。
S303,至少一个持有者端向所述区块链服务端注册持有者分布式数字身份标识。
至少一个持有者端向所述区块链服务端注册持有者分布式数字身份标识后,会获得与所述持有者分布式数字身份标识对应的持有者分布式数字身份标识文档,并且所述持有者分布式数字身份标识和所述持有者分布式数字身份标识文档也会保存在区块链服务端上。
S304,所述持有者端注册成功后,向所述发行者端发送可验证声明申请。
持有者端获取到持有者分布式数字身份标识文档后便有了一个属于自己的去中心化的数字身份,但还需要得到持有者分布式数字身份标识相关的认证可验证声明,证明自己的持有者分布式数字身份标识是有效、可使用的,所以还需要向发行者端发送可验证声明申请。
可验证声明简单说就是一个分布式数字身份标识给另一个分布式数字身份标识的某些属性做背书而发出的描述性声明,并附加自己的数字签名,用以证明这些属性的真实性,可以认为是一种数字证书。
S305,所述发行者端接收到所述持有者端发送的所述可验证声明申请后,为所述持有者端生成可验证声明,并对所述可验证声明中的声明信息进行哈希加密,形成密文可验证声明。
发行者端接收到持有者端发送的可验证声明申请后,发行者端会为持有者端生成可验证声明,在可验证声明中添加基本信息,包括:所述持有者分布式数字身份标识;可验证声明元数据,包括发行日期、失效日期、发行者信息、声明的类型等信息;声明信息,也就是关于持有者的属性信息,例如持有者的姓名、性别、生日、地址等信息;证明,也就是发行者签名,保证本可验证声明能够被验证,防止可验证声明内容被篡改以及验证可验证声明的发行者。此外,由于发行者端还会对可验证声明的声明信息进行哈希加密形成密文可验证声明,以供后续查验,因此还需要将加密的相关信息添加到可验证声明中,包括:声明信息的默克尔根以及默克尔根签名等。
发行者端对可验证声明的声明信息进行哈希加密,形成密文可验证声明,具体为:利用哈希算法计算可验证声明中声明信息的默克尔根,也就是对声明信息的各个属性分别进行哈希计算,进而生成声明信息的默克尔根(MerkleRoot),为了避免用户使用hash值倒推原始声明信息,在计算每个属性的hash值时,还可以加入salt。
举例来说,假如可验证声明的声明信息中包含有4个属性信息,分别为属性1、属性2、属性3、属性4,对4个属性信息分别进行哈希计算,得到相应的哈希值,分别为hash1、hash2、hash3、hash4;再对hash1和hash2进行哈希计算,得到相应的哈希值hash12,对hash3和hash4进行哈希计算,得到相应的哈希值hash34;最后对hash12和hash34进行哈希计算,得到相应的哈希值hash1234,即声明信息的默克尔根,通过哈希加密形成的默克尔树如图4所示。相关技术已经非常成熟,此处不再赘述。
通过哈希加密后形成的密文可验证声明包括:所述持有者分布式数字身份标识;可验证声明元数据,包括发行日期、失效日期、发行者信息、声明的类型等信息;声明信息的默克尔根;默克尔根签名,可证明声明信息是发行者加密的;发行者签名等。可以看出,发行者端针对一个持有者分布式数字身份标识生成的可验证声明与密文可验证声明是一一对应,成对存在的,密文可验证声明中不显示可验证声明中持有者的声明信息。
S306,所述发行者端将所述可验证声明发送给所述持有者端,并将所述密文可验证声明保存到所述区块链服务端的密文可验证声明托管合约上。
发行者端将上述未经过哈希加密的可验证声明发送给持有者端,以供持有者使用,同时将经过哈希加密的密文可验证声明保存到区块链服务端的密文可验证声明托管合约上,以供验证者查询。
S307,所述持有者端接收到所述发行者端发送的所述可验证声明后,向至少一个验证者端出示验证信息,所述验证信息包括持有者分布式数字身份标识。
持有者端接收到发行者端发送的可验证声明后,可向验证者端请求服务,并基于不同的验证目的,向验证者端出示不同的验证信息。
当持有者端仅想证明自己拥有发行者端发行的有效可验证声明时,出示的验证信息包括持有者自己的持有者分布式数字身份标识,此外,持有者端出示的验证信息通常还包括持有者签名,以证明验证信息是持有者自己发送的。签名的生成及验证涉及非对称密钥技术,可以提高信息的安全性,在数字身份应用中极为常见,此处不再赘述。
S308,所述验证者端根据所述验证信息中的所述持有者分布式数字身份标识,从所述区块链服务端的密文可验证声明托管合约上查询是否存在对应的密文可验证声明,从而验证所述持有者端是否持有所述发行者端发行的有效可验证声明。具体如下:
验证者端根据持有者端出示的验证信息中的持有者分布式数字身份标识,查询区块链服务端的密文可验证声明托管合约上是否保存有对应的密文可验证声明;
若是,则进一步查询所述对应的密文可验证声明中的失效日期;若当前日期未超过失效日期,则证明所述持有者端持有发行者端发行的有效可验证声明,验证成功;若当前日期已超过失效日期,则证明所述持有者端持有发行者端发行的失效可验证声明,验证失败;
若否,则证明所述持有者端未持有发行者端发行的可验证声明,验证失败。
当然,持有者端出示的验证信息包括持有者签名时,验证者端需要先验证持有者签名,确认所述验证信息是持有者端提供的,并没有被篡改,再根据所述持有者分布式数字身份标识进行查询验证。
验证者端查看密文可验证声明的失效日期时,也需要先验证发行者签名,以确保安全性。
本实施例中,持有者端出示的验证信息包括所述持有者分布式数字身份标识,验证者端根据所述持有者分布式数字身份标识即可验证所述持有者端是否持有有效可验证声明,提高了验证效率。
本申请第三实施例提供一种分布式数字身份验证方法,主要是针对可验证表达中的选择性披露数据进行验证,如图5所示,包括以下步骤:
S501,至少一个发行者端向区块链服务端注册发行者分布式数字身份标识;
S502,所述发行者端注册成功后,在所述区块链服务端上部署用于存储密文可验证声明的密文可验证声明托管合约;
S503,至少一个持有者端向所述区块链服务端注册持有者分布式数字身份标识;
S504,所述持有者端注册成功后,向所述发行者端发送可验证声明申请;
S505,所述发行者端接收到所述持有者端发送的所述可验证声明申请后,为所述持有者端生成可验证声明,并对所述可验证声明中的声明信息进行哈希加密,形成密文可验证声明;
S506,所述发行者端将所述可验证声明发送给所述持有者端,并将所述密文可验证声明保存到所述区块链服务端的密文可验证声明托管合约上;
S507,所述持有者端根据所述发行者端发送的可验证声明生成相应的可验证表达,作为验证信息;
S508,所述持有者端向至少一个验证者端出示所述验证信息;
S509,所述验证者端根据所述验证信息中的持有者分布式数字身份标识,从所述区块链服务端的密文可验证声明托管合约上查询是否存在对应的密文可验证声明,并根据所述密文可验证声明验证所述验证信息中的选择性披露数据是否正确。
其中,S501至S506的具体实施方式可参见第二实施例。下面结合图5,对S507至S509进行详细说明。
S507,所述持有者端根据所述发行者端发送的可验证声明生成相应的可验证表达,作为验证信息。
可验证表达包括:所述持有者分布式数字身份标识、选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径、声明信息总节点数,此外,通常还会加入持有者签名。由于可验证声明的声明信息中包含持有者的多个属性,出于隐私保护的需要,持有者一般不需要出示完整的可验证声明内容,而是选择性披露某些属性,即选择性披露数据。
参见图4所示,假如选择性披露数据为属性2,则选择性披露数据在默克尔树中的叶节点索引为1(索引从0开始,所以属性2的索引是1),默克尔验证路径为hash1、hash34,声明信息总节点数为4(一共有4个属性),那么,对属性2进行哈希计算,得到相应的哈希值hash2;再对hash2和已知的hash1进行哈希计算,得到相应的哈希值hash12;最后对hash12和已知的hash34进行哈希计算,得到相应的哈希值hash1234,即根据可验证表达中的选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径、声明信息总节点数,也可以计算出一个默克尔根,也就是待验证默克尔根。根据哈希加密的特点,只要选择性披露数据没有被篡改,则根据可验证表达计算出的待验证默克尔根应与密文可验证声明中声明信息的默克尔根一致。
S508,所述持有者端向至少一个验证者端出示所述验证信息。
当需要验证可验证表达的选择性披露数据时,持有者端向验证者端出示的验证信息即为所述可验证表达。
S509,所述验证者端根据所述验证信息中的持有者分布式数字身份标识,从所述区块链服务端的密文可验证声明托管合约上查询是否存在对应的密文可验证声明,并根据所述密文可验证声明验证所述验证信息中的选择性披露数据是否正确。具体如下:
持有者端向验证者端出示验证信息,也就是可验证表达,验证者端根据可验证表达中的持有者分布式数字身份标识,查询区块链服务端的密文可验证声明托管合约上是否保存有对应的密文可验证声明;
若是,即区块链服务端的密文可验证声明托管合约上保存有对应的密文可验证声明,则进一步查询所述对应的密文可验证声明中的失效日期。
若当前日期未超过失效日期,则证明持有者端持有发行者端发行的有效可验证声明;对可验证表达中的选择性披露数据进行同样的哈希计算,得到选择性披露数据的哈希值,再根据选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径及声明信息总节点数,通过哈希算法得到待验证默克尔根;将待验证默克尔根与查询到对应的密文可验证声明中声明信息的默克尔根进行比较,若一致,则持有者端出示的可验证表达中的选择性披露数据正确,验证成功;若不一致,则持有者端出示的可验证表达中的选择性披露数据不正确,说明选择性披露数据已被篡改,与发行者端发行的可验证声明中声明信息的对应属性不同,验证失败。
若当前日期已超过失效日期,则证明持有者端持有发行者端发行的失效可验证声明,验证失败。
若否,即区块链服务端的密文可验证声明托管合约上未保存有对应的密文可验证声明,则证明持有者端未持有发行者端发行的可验证声明,验证失败。
当然,持有者端出示的验证信息中包含持有者签名时,验证者端需要先验证持有者签名,确认可验证表达是持有者端提供的,并没有被篡改,再根据可验证表达中的持有者分布式数字身份标识进行查询验证。
验证者端查看密文可验证声明的失效日期、默克尔根时,也需要先验证发行者签名和默克尔根签名,以确保安全性。
本实施例中的可验证表达,剔除了现有可验证表达中的可验证声明及挑战值部分信息,只保留了选择性披露数据的关键信息,减少了通信过程中的数据量;且可验证表达的选择性披露数据验证方式也省略了挑战值部分的验证,简化了验证流程。
本申请第四实施例提供一种分布式数字身份验证系统,如图6所示,包括:区块链服务端604、至少一个发行者端601、持有者端602和验证者端603。
其中,区块链服务端604利用区块链数据库来存储身份信息,并部署有数据存储和权限管理的多个区块链智能合约,具体包括:第一注册单元、第二注册单元和存储单元。
所述第一注册单元用于为至少一个发行者端601注册发行者分布式数字身份标识;所述第二注册单元用于为至少一个持有者端602注册持有者分布式数字身份标识;所述存储单元用于部署密文可验证声明托管合约,所述密文可验证声明托管合约用于存储密文可验证声明。通常,发行者端601注册发行者分布式数字身份标识完毕后,会通过区块链服务端604的存储单元部署密文可验证声明托管合约。
发行者端601包括第一生成单元、第二生成单元和发送单元。
所述第一生成单元用于根据所述持有者端602发送的可验证声明申请,生成与所述持有者分布式数字身份标识对应的可验证声明;所述第二生成单元用于对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明;所述发送单元用于将所述可验证声明发送给所述持有者端602,并将所述密文可验证声明发送到所述区块链服务端604的密文可验证声明托管合约中保存。
其中,所述对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明,包括:利用哈希算法计算所述可验证声明中声明信息的默克尔根,从而得到密文可验证声明。
所述密文可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息和声明信息的默克尔根。
所述可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息、声明信息和声明信息的默克尔根。
持有者端602包括出示单元。
所述出示单元用于向至少一个验证者端603出示验证信息,所述验证信息包括所述持有者分布式数字身份标识。
验证者端603包括查询验证单元。
所述查询验证单元用于根据所述持有者分布式数字身份标识,从所述区块链服务端604的密文可验证声明托管合约上查询是否存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,从而验证所述持有者端602是否持有所述发行者端601发行的有效可验证声明。具体包括:
若所述密文可验证声明托管合约上存储有与所述持有者分布式数字身份标识对应的所述密文可验证声明,查询所述密文可验证声明中的失效日期;若当前日期未超过失效日期,则通过所述验证;若当前日期已超过失效日期,则不予通过所述验证;
若所述密文可验证声明托管合约上未存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,则不予通过所述验证。
在其他实施例中,
所述验证信息还包括:选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数。
所述查询验证单元还用于根据所述区块链服务端的密文可验证声明托管合约上存储的与所述持有者分布式数字身份标识对应的、且当前日期未超过失效日期的所述密文可验证声明,验证所述选择性披露数据是否正确。具体包括:
根据所述选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数进行哈希计算,得到待验证默克尔根;将待验证默克尔根与所述密文可验证声明中声明信息的默克尔根进行比较,若一致,则所述选择性披露数据正确;若不一致,则所述选择性披露数据不正确。
本申请第五实施例提供一种电子设备,如图7所示。该电子设备包括:处理器701、存储器702和总线703。所述处理器701和存储器702之间通过总线703进行通信。所述存储器702用于存储程序和数据,所述处理器701调用存储器702存储的程序,以执行上述分布式数字身份验证方法。
本申请第六实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述分布式数字身份验证方法。
需要说明的是,尽管在上文详细描述中提及了用于动作执行的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的具体实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
应当注意,本申请的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本申请的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本申请的保护范围之内。
Claims (18)
1.一种分布式数字身份验证方法,其特征在于,包括:
区块链服务端为至少一个发行者端注册发行者分布式数字身份标识;
所述区块链服务端部署有密文可验证声明托管合约,所述密文可验证声明托管合约用于存储密文可验证声明;
所述区块链服务端为至少一个持有者端注册持有者分布式数字身份标识;
所述发行者端根据所述持有者端发送的可验证声明申请,生成与所述持有者分布式数字身份标识对应的可验证声明,并对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明,所述发行者端针对一个持有者分布式数字身份标识生成的可验证声明与密文可验证声明是一一对应的;
所述发行者端将所述可验证声明发送给所述持有者端,并将所述密文可验证声明发送到所述区块链服务端的密文可验证声明托管合约中保存;
所述持有者端向至少一个验证者端出示验证信息,所述验证信息包括所述持有者分布式数字身份标识;
所述验证者端根据所述持有者分布式数字身份标识,从所述区块链服务端的密文可验证声明托管合约上查询是否存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,从而验证所述持有者端是否持有所述发行者端发行的有效可验证声明。
2.根据权利要求1所述的分布式数字身份验证方法,其特征在于,所述验证所述持有者端是否持有所述发行者端发行的有效可验证声明,包括:
若所述密文可验证声明托管合约上存储有与所述持有者分布式数字身份标识对应的所述密文可验证声明,查询所述密文可验证声明中的失效日期;若当前日期未超过失效日期,则通过所述验证;若当前日期已超过失效日期,则不予通过所述验证;
若所述密文可验证声明托管合约上未存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,则不予通过所述验证。
3.根据权利要求1所述的分布式数字身份验证方法,其特征在于,对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明,包括:
利用哈希算法计算所述可验证声明中声明信息的默克尔根,从而得到密文可验证声明。
4.根据权利要求3所述的分布式数字身份验证方法,其特征在于,所述密文可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息和声明信息的默克尔根。
5.根据权利要求1所述的分布式数字身份验证方法,其特征在于,所述可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息、声明信息和声明信息的默克尔根。
6.根据权利要求5所述的分布式数字身份验证方法,其特征在于,所述验证信息还包括:选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数。
7.根据权利要求6所述的分布式数字身份验证方法,其特征在于,还包括:
所述验证者端根据所述区块链服务端的密文可验证声明托管合约上存储的与所述持有者分布式数字身份标识对应的、且当前日期未超过失效日期的所述密文可验证声明,验证所述选择性披露数据是否正确。
8.根据权利要求7所述的分布式数字身份验证方法,其特征在于,所述验证所述选择性披露数据是否正确,包括:
根据所述选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数进行哈希计算,得到待验证默克尔根;
将所述待验证默克尔根与所述密文可验证声明中声明信息的默克尔根进行比较,若一致,则所述选择性披露数据正确;若不一致,则所述选择性披露数据不正确。
9.一种分布式数字身份验证系统,其特征在于,包括:
区块链服务端,至少一个发行者端、持有者端和验证者端;
所述区块链服务端包括第一注册单元、第二注册单元和存储单元;
所述第一注册单元用于为至少一个发行者端注册发行者分布式数字身份标识;
所述第二注册单元用于为至少一个持有者端注册持有者分布式数字身份标识;
所述存储单元用于部署密文可验证声明托管合约,所述密文可验证声明托管合约用于存储密文可验证声明;
所述发行者端包括第一生成单元、第二生成单元和发送单元;
所述第一生成单元用于根据所述持有者端发送的可验证声明申请,生成与所述持有者分布式数字身份标识对应的可验证声明;
所述第二生成单元用于对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明;
所述发行者端针对一个持有者分布式数字身份标识生成的可验证声明与密文可验证声明是一一对应的;
所述发送单元用于将所述可验证声明发送给所述持有者端,并将所述密文可验证声明发送到所述区块链服务端的密文可验证声明托管合约中保存;
所述持有者端包括出示单元;
所述出示单元用于向至少一个验证者端出示验证信息,所述验证信息包括所述持有者分布式数字身份标识;
所述验证者端包括查询验证单元;
所述查询验证单元用于根据所述持有者分布式数字身份标识,从所述区块链服务端的密文可验证声明托管合约上查询是否存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,从而验证所述持有者端是否持有所述发行者端发行的有效可验证声明。
10.根据权利要求9所述的分布式数字身份验证系统,其特征在于,所述验证所述持有者端是否持有所述发行者端发行的有效可验证声明,包括:
若所述密文可验证声明托管合约上存储有与所述持有者分布式数字身份标识对应的所述密文可验证声明,查询所述密文可验证声明中的失效日期;若当前日期未超过失效日期,则通过所述验证;若当前日期已超过失效日期,则不予通过所述验证;
若所述密文可验证声明托管合约上未存储与所述持有者分布式数字身份标识对应的所述密文可验证声明,则不予通过所述验证。
11.根据权利要求9所述的分布式数字身份验证系统,其特征在于,所述对所述可验证声明中的声明信息进行哈希加密,形成与所述持有者分布式数字身份标识对应的密文可验证声明,包括:
利用哈希算法计算所述可验证声明中声明信息的默克尔根,从而得到密文可验证声明。
12.根据权利要求11所述的分布式数字身份验证系统,其特征在于,所述密文可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息和声明信息的默克尔根。
13.根据权利要求9所述的分布式数字身份验证系统,其特征在于,所述可验证声明包括:所述持有者分布式数字身份标识、发行日期、失效日期、发行者信息、声明信息和声明信息的默克尔根。
14.根据权利要求13所述的分布式数字身份验证系统,其特征在于,所述验证信息还包括:选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数。
15.根据权利要求14所述的分布式数字身份验证系统,其特征在于,所述查询验证单元还用于根据所述区块链服务端的密文可验证声明托管合约上存储的与所述持有者分布式数字身份标识对应的、且当前日期未超过失效日期的所述密文可验证声明,验证所述选择性披露数据是否正确。
16.根据权利要求15所述的分布式数字身份验证系统,其特征在于,所述验证所述选择性披露数据是否正确,包括:
根据所述选择性披露数据、选择性披露数据在默克尔树中的叶节点索引、默克尔验证路径和声明信息总节点数进行哈希计算,得到待验证默克尔根;
将所述待验证默克尔根与所述密文可验证声明中声明信息的默克尔根进行比较,若一致,则所述选择性披露数据正确;若不一致,则所述选择性披露数据不正确。
17.一种电子设备,其特征在于,包括:
处理器和存储器;
所述存储器用于存储程序和数据,所述处理器调用存储器存储的程序,以执行权利要求1至8任一所述的分布式数字身份验证方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现权利要求1至8任一所述的分布式数字身份验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210436898.1A CN114944937B (zh) | 2022-04-19 | 2022-04-19 | 分布式数字身份验证方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210436898.1A CN114944937B (zh) | 2022-04-19 | 2022-04-19 | 分布式数字身份验证方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114944937A CN114944937A (zh) | 2022-08-26 |
CN114944937B true CN114944937B (zh) | 2024-04-09 |
Family
ID=82906848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210436898.1A Active CN114944937B (zh) | 2022-04-19 | 2022-04-19 | 分布式数字身份验证方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114944937B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118441B (zh) * | 2022-08-29 | 2022-11-04 | 中航信移动科技有限公司 | 一种基于区块链的身份验证系统 |
CN116232763B (zh) * | 2023-05-05 | 2023-07-07 | 敏于行(北京)科技有限公司 | 选择性披露的动态组合可验证凭证生成方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111095865A (zh) * | 2019-07-02 | 2020-05-01 | 阿里巴巴集团控股有限公司 | 用于发布可验证声明的系统和方法 |
CN111095327A (zh) * | 2019-07-02 | 2020-05-01 | 阿里巴巴集团控股有限公司 | 用于验证可验证声明的系统和方法 |
CN111125731A (zh) * | 2019-12-11 | 2020-05-08 | 支付宝(杭州)信息技术有限公司 | 一种基于可验证声明的业务处理方法、装置及设备 |
CN111724170A (zh) * | 2020-03-05 | 2020-09-29 | 支付宝(杭州)信息技术有限公司 | 一种业务处理系统、业务处理的方法、装置及设备 |
WO2020192773A1 (zh) * | 2019-03-27 | 2020-10-01 | 深圳市网心科技有限公司 | 一种数字身份认证方法、设备、装置、系统及存储介质 |
CN111884805A (zh) * | 2020-06-24 | 2020-11-03 | 易联众信息技术股份有限公司 | 基于区块链及分布式身份的数据托管方法及系统 |
CN112311530A (zh) * | 2020-10-29 | 2021-02-02 | 中国科学院信息工程研究所 | 一种基于区块链的联盟信任分布式身份凭证管理认证方法 |
CN112966309A (zh) * | 2021-02-03 | 2021-06-15 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的业务实现方法和装置 |
CN113285954A (zh) * | 2021-06-02 | 2021-08-20 | 网易(杭州)网络有限公司 | 可验证声明验证方法、系统、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020118044A1 (en) * | 2018-12-05 | 2020-06-11 | Sidewalk Labs LLC | Identity systems, methods, and media for auditing and notifying users concerning verifiable claims |
WO2020257472A1 (en) * | 2019-06-18 | 2020-12-24 | Transmute Industries, Inc. | Systems and methods for a decentralized data authentication platform |
-
2022
- 2022-04-19 CN CN202210436898.1A patent/CN114944937B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020192773A1 (zh) * | 2019-03-27 | 2020-10-01 | 深圳市网心科技有限公司 | 一种数字身份认证方法、设备、装置、系统及存储介质 |
CN111095865A (zh) * | 2019-07-02 | 2020-05-01 | 阿里巴巴集团控股有限公司 | 用于发布可验证声明的系统和方法 |
CN111095327A (zh) * | 2019-07-02 | 2020-05-01 | 阿里巴巴集团控股有限公司 | 用于验证可验证声明的系统和方法 |
CN111125731A (zh) * | 2019-12-11 | 2020-05-08 | 支付宝(杭州)信息技术有限公司 | 一种基于可验证声明的业务处理方法、装置及设备 |
CN111724170A (zh) * | 2020-03-05 | 2020-09-29 | 支付宝(杭州)信息技术有限公司 | 一种业务处理系统、业务处理的方法、装置及设备 |
CN111884805A (zh) * | 2020-06-24 | 2020-11-03 | 易联众信息技术股份有限公司 | 基于区块链及分布式身份的数据托管方法及系统 |
CN112311530A (zh) * | 2020-10-29 | 2021-02-02 | 中国科学院信息工程研究所 | 一种基于区块链的联盟信任分布式身份凭证管理认证方法 |
CN112966309A (zh) * | 2021-02-03 | 2021-06-15 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的业务实现方法和装置 |
CN113285954A (zh) * | 2021-06-02 | 2021-08-20 | 网易(杭州)网络有限公司 | 可验证声明验证方法、系统、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
基于区块链的身份托管模型研究;邓小鸿;朱年红;黄磊;王智强;王俊彬;;计算机工程与应用(04);全文 * |
远程办公中基于区块链技术的身份认证方法;王柏华;孙长杰;李照川;王伟兵;;信息安全研究(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114944937A (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11444782B2 (en) | Dynamically managing exchanges of data using a distributed ledger and homomorphic commitments | |
EP3520356B1 (en) | Methods and apparatus for providing blockchain participant identity binding | |
CN111680324B (zh) | 用于区块链的凭证验证方法、管理方法以及签发方法 | |
US20200274713A1 (en) | Credential verification and issuance through credential service providers | |
US20210319132A1 (en) | Methods and Devices For Managing User Identity Authentication Data | |
US10833873B2 (en) | Credential-based authorization | |
CN108985100B (zh) | 基于区块链的元素安全性证明方法、装置、设备和介质 | |
AU2017100968A4 (en) | System for issuance, verification and use of digital identities on a public or private ledger. | |
US20210374693A1 (en) | System and method for a decentralized portable information container supporting privacy protected digital information credentialing, remote administration, local validation, access control and remote instruction signaling utilizing blockchain distributed ledger and container wallet technologies | |
US8635442B2 (en) | System and method for long-term digital signature verification utilizing light weight digital signatures | |
CN111566649A (zh) | 使用公有侧链验证存储在联盟区块链中的数据的完整性 | |
CN114944937B (zh) | 分布式数字身份验证方法、系统、电子设备及存储介质 | |
US9906512B2 (en) | Flexible revocation of credentials | |
KR102460299B1 (ko) | 익명 크리덴셜 인증 시스템 및 그 방법 | |
KR20060123470A (ko) | OCSP 및 분산 OCSP를 위한 서명-효율적인RTC(Real Time Credentials) | |
CN110855445B (zh) | 一种基于区块链的证书管理方法、装置及存储设备 | |
Buccafurri et al. | Integrating digital identity and blockchain | |
US11025643B2 (en) | Mobile multi-party digitally signed documents and techniques for using these allowing detection of tamper | |
CN114503508A (zh) | 用于在区块链上存储经认证的数据的计算机实施的方法和系统 | |
Silde et al. | Anonymous tokens with public metadata and applications to private contact tracing | |
CN106533681B (zh) | 一种支持部分出示的属性证明方法与系统 | |
CN113922962A (zh) | 一种数字身份属性的选择性披露方法和装置 | |
JP7462903B2 (ja) | 利用者端末、認証者端末、登録者端末、管理システムおよびプログラム | |
US20220109986A1 (en) | Identity management on a mobile device | |
US20230006835A1 (en) | Cross-blockchain identity and key management |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |