CN111447073B - 基于区块链与零知识证明的身份管理与认证系统及方法 - Google Patents
基于区块链与零知识证明的身份管理与认证系统及方法 Download PDFInfo
- Publication number
- CN111447073B CN111447073B CN202010245614.1A CN202010245614A CN111447073B CN 111447073 B CN111447073 B CN 111447073B CN 202010245614 A CN202010245614 A CN 202010245614A CN 111447073 B CN111447073 B CN 111447073B
- Authority
- CN
- China
- Prior art keywords
- token
- attribute
- user
- identity
- hidden
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004891 communication Methods 0.000 claims abstract description 17
- 238000013507 mapping Methods 0.000 claims abstract description 8
- 230000004044 response Effects 0.000 claims description 22
- 150000003839 salts Chemical class 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 19
- 239000002699 waste material Substances 0.000 claims description 16
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 claims description 6
- 239000003999 initiator Substances 0.000 claims description 2
- 230000003993 interaction Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000010200 validation analysis Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 7
- 230000006872 improvement Effects 0.000 description 4
- 239000010813 municipal solid waste Substances 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 108010014172 Factor V Proteins 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- KAICRBBQCRKMPO-UHFFFAOYSA-N phosphoric acid;pyridine-3,4-diamine Chemical compound OP(O)(O)=O.NC1=CC=NC=C1N KAICRBBQCRKMPO-UHFFFAOYSA-N 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- 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/3218—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
- G06F21/1014—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1066—Hiding content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- 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
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Medical Informatics (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种基于区块链与零知识证明的身份管理与认证系统及方法。所述身份管理与认证系统包括链上智能合约与链下实体本地客户端。链上智能合约包括以下合约:属性仓库合约、知识管理合约、知识验证合约和密钥仓库合约。链下实体本地客户端包括以下模块:UI接口模块、web3.js接口模块、零知识证明模块、通信模块和数据库模块。身份管理与认证方法包括:属性令牌创建、属性隐令牌创建、身份信息认证及属性令牌注销。本发明实现了用户对属性的所有权在区块链中不被公开,解决了区块链中的身份管理系统将个人标识符与个人身份信息之间的映射关系公开给所有人的问题,保证了用户身份信息的隐私性。
Description
技术领域
本发明涉及区块链技术领域,具体地说是一种基于区块链与零知识证明的身份管理与认证系统及方法。
背景技术
区块链(Blockchain)技术是一种分布式数据库技术,区块链技术可以消除交易过程中的中间商,任何人都可以托管分布式账本,交易过程透明,不可篡改,不可否认。区块链中的智能合约(Smart Contract)由代码控制,由事务(Transaction)触发其执行,通过ABI(Application Binary Interface)接口与实体进行交互,借助智能合约使得所有实体的操作流程公开透明,区块链底层的共识机制保证事务运行结果的正确性和一致性。通过区块链的分布式数据库技术、智能合约技术和节点间的共识机制,可以在一个分布式无信任的环境下创建一个可信的分布式应用(Decentralized Application,简称DAPP),解决基于传统集中式数据库的应用所带来的问题,如成本高昂、单点故障、网络钓鱼及员工内部泄露信息。
零知识证明(Zero-Knowledge Proofs,简称ZKP)是一种密码学技术,是指证明者在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。零知识证明算法zk-SNARK(Zero Knowledge Succinct Non-interactive ARguments of Knowledge)是一种轻量级的主动式验证算法,在区块链领域,zk-SNARK算法应用场景是,证明者在不提供哈希值的哈希函数输入情况下,证明自己知道哈希值的前像,实现方法为证明者在本地零知识证明模块编译相应的电路并通过零知识证明密钥生成验证所需的proof,区块链内的智能合约中的零知识验证密钥会验证proof的正确性。
中国专利申请(公开号CN109150836 A)公开了一种区块链实体身份管理系统,该身份管理系统包括节点管理模块、身份管理模块以及身份鉴别模块。所述节点管理模块负责区块链上节点成员及其身份信息的管理、代理节点的指定或选举、节点信息在区块链网络中的通告;所述身份管理模块负责节点身份的注册、注销、更新,所述身份鉴别模块负责下载和同步区块链,查找节点身份信息,并验证公钥和身份信息的绑定关系是否可信。实体身份管理包括实体公钥和身份标识绑定关系的管理,以及身份鉴别即证明公钥属于正确的所有者。各个实体成员构成整个区块链系统中的节点,共同维护所有节点的身份信息。
中国专利申请(公开号CN 105701372 A)公开了一种区块链身份构建及验证方法,该专利申请涉及互联网上的身份构建及验证,包括如下步骤:认证机构根据用户提交的身份验证请求,构建用户身份区块链;所述认证机构借助所述身份区块链进行用户身份验证处理。本专利申请将用户身份信息写入区块链,由多家认证机构通过共识机制共同完成身份信息的确认、存储,此后用户便可以方便地利用区块链进行身份验证。该方法不仅可以提高用户身份验证的效率,同时也不会因个别认证机构的问题影响用户身份信息的准确性,大幅提升身份验证过程的安全性。
以上两个技术方案都是基于区块链的身份管理与认证方案,但上述的区块链身份管理与认证技术方案存在将代表个人的标识符与个人身份信息之间的映射关系直接公开在区块链中的问题,导致身份隐私泄露,不法分子通过访问区块链就可以得到个人信息,从而造成危害。
发明内容
本发明的目的就是提供一种基于区块链与零知识证明的身份管理与认证系统及方法,本发明引入零知识证明算法zk-SNARK,允许用户的身份所有权在区块链中不被公开,实现用户与身份信息的关联不可见,并实现对用户的匿名认证,解决了个人标识符与个人信息之间的映射关系公开给所有人的问题,保证了用户身份信息的隐私性,不可链接性。
本发明假设场景中共有三种实体:身份提供商(Identity Provider,简称IdP)、用户(User)与服务提供商(Service Provider,简称SP)。实体的区块链地址作为实体的唯一标识符,每一个区块链地址都有对应的区块链公私钥对。一个用户的身份是由多个属性组成的,这些属性由多个IdP进行发布或撤销,且IdP向用户颁发的属性与用户的标识符之间的关联通过零知识证明隐藏,对任何人是不可见的;当用户想要访问SP所提供的某些服务,该服务要求用户拥有某些属性时,用户可以向SP证明自己确实拥有这些属性的所有权,且用户证明自己对属性的所有权的认证结果只有SP可见。
为此,本发明采用了以下技术方案:
一种由链上智能合约与链下实体本地客户端组成的身份管理与认证方案。所述链下实体本地客户端包括5个模块:UI接口模块、web3.js接口模块、零知识证明模块、通信模块和数据库模块。
所述链上智能合约包括:属性仓库合约(Attribute Repository Contract,简称ARC)、知识管理合约(Knowledge Management Contract,简称KMC)、知识验证合约(Knowledge Verify Contract,简称KVC)和密钥仓库合约(Key Repository Contract,简称KRC)。
一种基于区块链与零知识证明的身份管理及认证方法,身份管理与认证方法包括以下步骤:
1)属性令牌创建;
2)属性隐令牌创建;
3)身份信息认证;
4)属性令牌注销。
作为本发明的一种改进,所述步骤1)属性令牌创建,具体如下:IdP按照属性令牌元数据格式调用ARC合约的令牌创建函数,创建该令牌的IdP的区块链地址会记录在属性令牌中,令牌创建函数为属性令牌生成唯一标识,一个属性令牌只能与一个属性隐令牌建立映射关系。创建属性令牌会触发事件以通知IdP完成情况。
作为本发明的一种改进,所述步骤2)属性隐令牌创建,具体如下:IdP想要将所述步骤1)中生成的属性令牌颁发给用户,首先为该令牌生成关键信息,即令牌盐值,随后将属性令牌标识符、用户区块链公钥与所述令牌盐值共同哈希得到隐令牌标识符,随后IdP在零知识证明模块中编译“创建操作类型”电路,所述零知识证明模块通过零知识证明密钥生成proof。IdP发送事务调用KMC合约中的隐令牌创建函数,所述proof会在KVC合约中得到验证,即在不公开令牌盐值与用户区块链公钥的情况下证明该隐令牌标识符的哈希前像中确实包含令牌盐值与用户区块链公钥。随后KMC存储隐令牌标识符并修改属性令牌的关联状态为已关联。最后IdP存储关键信息并通过通信模块将令牌关键信息发送给用户,用户确认关键信息的正确性并存储到本地数据库模块中。该过程建立了属性令牌与属性隐令牌的一一对应关系,同时保证了属性隐令牌与用户身份标识的映射关系没有公开在区块链中,而是通过零知识证明隐藏,这个过程将属性令牌的所有权秘密转移给了用户。
作为本发明的一种改进,所述步骤3)身份信息认证,具体如下:用户需要为某SP透露自己身份信息时(身份信息是用户若干属性的集合),首先用户向SP发起断言,声称自己拥有某些属性令牌的所有权并接收SP返回的质询内容。用户需在本次身份信息认证操作中证明对这些属性令牌的所有权,即证明自己拥有这些属性令牌所对应的隐令牌标识符的哈希前像中包含的区块链公钥所对应的区块链私钥。
每个令牌需进行如下操作:用户生成响应内容、响应盐值与响应废弃物,随后在零知识证明模块中编译“认证操作类型”电路,所述零知识证明模块通过零知识证明密钥生成proof。随后用户通过一次性匿名地址发送事务调用KMC合约中的身份认证函数,所述proof会在KVC合约中得到验证,KMC合约确认响应废弃物不在废弃物标识符列表中(以防止重放攻击),且该属性令牌未被注销。随后将响应废弃物加入废弃物标识符列表中并触发认证事件。
若SP成功监听到每个属性令牌的认证事件并成功验证响应内容,则身份信息认证成功。
作为本发明的一种改进,所述步骤4)属性令牌注销,具体如下:IdP想要注销所述步骤1)中生成的属性令牌,IdP发送事务调用ARC合约中的令牌注销函数并指定要注销的属性令牌,令牌注销函数会检查本次调用函数的发起者是否为该属性令牌的创建者。验证成功后KMC合约将令牌的注销位设置为已注销(即将exist字段置为0),从而阻塞该属性令牌对应的认证功能并触发注销事件。IdP成功监听到该令牌的注销事件则令牌注销成功。
附图说明
图1为本发明实施例的基于区块链与零知识证明的身份管理与认证系统的结构示意图。
图2为本发明实施例的属性令牌元数据格式的示意图。
图3为本发明实施例的属性令牌创建的流程图。
图4为本发明实施例的属性隐令牌创建的流程图。
图5为本发明实施例的身份信息认证流程图。
图6为本发明实施例的属性令牌注销流程图。
具体实施方式
以下参考说明书附图介绍本发明的一个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
本发明假设场景中共有三种实体:身份提供商(Identity Provider,简称IdP)、用户(User)与服务提供商(Service Provider,简称SP)。实体的区块链地址作为实体的唯一标识符,每一个区块链地址都有对应的区块链公私钥对。一个用户的身份是由多个属性组成的,这些属性由多个IdP进行发布或撤销,且IdP向用户颁发的属性与用户的标识符之间的关联通过零知识证明隐藏,对任何人是不可见的;当用户想要访问SP所提供的某些服务,该服务要求用户拥有某些属性时,用户可以向SP证明自己确实拥有这些属性的所有权,且用户证明自己对属性的所有权的认证结果只有SP可见。
本发明实施例的一种基于区块链与零知识证明的身份管理与认证系统如图1所示,该系统由链上智能合约与链下实体本地客户端组成。
链上智能合约包括:属性仓库合约(Attribute Repository Contract,简称ARC)、知识管理合约(Knowledge Management Contract,简称KMC)、知识验证合约(KnowledgeVerify Contract,简称KVC)和密钥仓库合约(Key Repository Contract,简称KRC)。各个合约功能如下:
ARC合约,用于存储属性令牌(以属性令牌标识符与属性信息的映射的格式);为IdP提供创建/注销属性令牌的函数;为实体提供查询属性令牌的详情(类型、内容、哈希及创建者)的函数。
KMC合约,用于存储身份隐令牌标识符与废弃物标识符(以隐令牌标识符列表和废弃物标识符列表的格式);为IdP提供创建属性隐令牌的函数;为用户提供身份信息认证的函数。
KVC合约,用于验证用户与IdP提交的零知识证明proof。
KRC合约,用于存储实体的通信公钥与区块链公钥(以实体区块链地址与其通信公钥及区块链公钥的映射的格式);为实体提供注册公钥信息的函数。
链下实体本地客户端包括5个模块:UI接口模块、web3.js接口模块、零知识证明模块、通信模块和数据库模块。
UI接口模块是方便实体输入参数与指令所设计的图形界面,根据实体输入的参数调用其他模块,或者接收来自其他模块传递的消息。这里的其他模块指链下实体本地客户端中除UI接口模块外的其他四个模块。
web3.js接口模块是客户端与智能合约交互的接口,可以发送事务调用智能合约中的函数,也可以监听智能合约中函数触发的事件。
零知识证明模块接收来自UI接口模块的参数,用于生成两种隐令牌操作(创建操作类型和认证操作类型)的零知识证明proof。
通信模块接收来自UI接口模块的参数,使用基于椭圆曲线加密数字签名算法的非对称密钥技术,该模块旨在使实体能够在网络内发送使用接收者公钥加密的消息,除指定接收者之外其他人不能解密,由于消息中包含发送方的私钥数字签名,攻击者无法伪造消息发送方的签名。在方案运行之前,实体需要将自己的通信公钥注册到KRC合约中。
数据库模块允许IdP将其颁发的属性令牌的相关信息存储到本地数据库中。同样,用户也会将接收到的来自IdP的属性令牌的相关信息存储到本地数据库。
本发明实施例的属性令牌元数据格式如图2所示。IdP调用ARC合约中的属性令牌创建函数时的输入需要按照图2中的格式,调用该函数的事务发送者作为令牌的创建者会被记录在合约中令牌的creator字段,该字段用于标识属性令牌的创建者,即创建该属性令牌的IdP,在认证身份时,作为用户属性的创建者供SP确认。属性令牌的status字段用来标识该令牌的关联状态,在创建时为0,只有在属性令牌对应的隐令牌创建后,该令牌的status字段会被置为1,且置为1后不可再次创建与该令牌关联的隐令牌,防止IdP将一枚属性令牌发布给多位用户。属性令牌的exist字段用来标识令牌的存在情况,在创建时为1,只有该属性令牌被注销后,该令牌的exist字段会被置为0。
本发明实施例的属性令牌创建流程图如图3所示。属性令牌创建具体流程如下:
步骤sa1:IdP通过UI接口模块输入要创建的属性令牌的类型、内容及哈希值,并发送事务调用ARC合约中的属性令牌创建函数,函数的输入为UI接口模块输入。
步骤sa2:属性令牌创建函数根据函数输入与时间戳为属性令牌生成唯一的标识符,用于标识和检索该属性令牌。
步骤sa3:属性令牌创建函数初始化并存储属性令牌。属性令牌的type字段、value字段、hash字段为函数输入,creator字段为IdP区块链地址,status字段为0,exist字段为1。
步骤sa4:属性令牌创建函数会将属性令牌标识符到属性令牌的映射存储到ARC合约中并发出令牌创建事件。
步骤sa5:IdP本地客户端监听到令牌创建事件,创建属性令牌完成。
本发明实施例的属性隐令牌创建流程图如图4所示。属性隐令牌创建具体流程如下:
步骤sb1:IdP通过UI接口模块指定由自己创建且未关联隐令牌的属性令牌(假设该属性令牌标识符为τ),并指定用户的区块链地址。
步骤sb2:IdP本地客户端为令牌生成关键信息(128位的令牌盐值ετ),并从KRC合约中查询到用户的128位的区块链公钥IdP将属性令牌标识符τ、令牌盐值ετ与用户区块链公钥哈希得到属性隐令牌标识符Zτ。
步骤sb3:IdP本地客户端将属性令牌标识符τ与隐令牌标识符Zτ作为零知识证明模块的公有输入,令牌盐值ετ与用户区块链公钥作为零知识证明模块的私有输入输入到零知识证明模块并编译如下电路,零知识证明模块产生相应的“创建操作类型”proof,proof大小为256字节。
Public inputs=(τ,Zτ)//定义电路的公有输入变量
步骤sb4:IdP发送事务调用KMC合约中的隐令牌创建函数,函数的输入为零知识证明模块公有输入及proof。
步骤sb5:隐令牌创建函数判断函数调用者与属性令牌创建者是否为同一区块链地址,并判断属性令牌是否尚未关联隐令牌,且尚未被注销,在判断结果均为是的情况下执行步骤sb6,否则隐令牌创建失败流程结束。
步骤sb6:隐令牌创建函数调用KVC合约来验证公有输入及proof的正确性,如果验证结果正确则执行步骤sb7,如果验证结果不正确则流程结束。
步骤sb7:隐令牌创建函数将属性隐令牌标识符Zτ存储至隐令牌标识符列表中,并将属性令牌的status字段置为1,同时发出隐令牌创建事件。
步骤sb8:IdP本地客户端监听到隐令牌创建事件,存储令牌相关信息并通过通信模块将相关信息发送给用户。
步骤sb9:用户本地客户端的通信模块接收令牌相关信息。
步骤sb10:用户本地客户端确认令牌相关信息,如果信息正确,则执行步骤sb11;如果信息错误,则流程结束。
步骤sb11:用户本地客户端将令牌相关信息存储在本地客户端的数据库模块中,创建属性隐令牌完成。
本发明实施例的身份信息认证流程图如图5所示。身份信息认证具体流程如下:用户想要为某SP透露自己的身份信息所有权时,即证明自己拥有某些属性令牌,证明自己拥有这些属性令牌所对应的属性隐令牌标识符的哈希前像中包含的区块链公钥所对应的区块链私钥。由于该事务会引起属性令牌响应,导致这一流程的事务发起地址会暴露与令牌的关联,所以用户在该认证方法中应使用一次性匿名区块链地址。假设用户在身份信息认证之前已经了解访问该服务所要求的属性集合。身份信息认证流程如下:
步骤sc1:首先用户通过通信模块向SP发送消息,声称自己拥有ARC合约中某些属性令牌的所有权,SP本地客户端接收到消息后调用ARC合约中的属性令牌查询函数以确认这些属性令牌中的属性内容的有效性与令牌创建者的权威性。SP为每个属性令牌生成相应的质询因子,并通过通信模块向用户发送质询因子的集合同时开始监听这些令牌的响应事件。
步骤sc2:用户本地客户端通过通信模块接收到质询因子集合,需要对每个属性令牌的所有权证明,为每个属性令牌做步骤sc3至步骤sc9的认证操作。
步骤sc3:用户本地客户端使用用户的区块链私钥对该属性令牌对应的质询因子π进行签名得到签名内容Sπ,使用SP的区块链公钥加密Sπ得到响应内容ESπ。
步骤sc5:用户本地客户端将属性令牌标识符τ,隐令牌标识符Zτ与响应废弃物Nδ作为零知识证明模块的公有输入,将令牌盐值ετ、响应盐值δ与用户私钥作为零知识证明模块的私有输入输入到零知识证明模块并编译如下电路,零知识证明模块产生相应的“认证操作类型”proof,proof大小为256字节。
Public inputs=(τ,Zτ,Nδ)//定义电路的公有输入变量
步骤sc6:用户本地客户端通过一次性匿名地址发送事务调用KMC合约中的身份信息认证函数,函数的输入为零知识证明模块公有输入、proof及响应内容ESπ。
步骤sc7:身份信息认证函数调用KVC合约来验证公有输入及proof的正确性,如果验证结果正确则执行步骤sc8,如果验证结果不正确则流程结束。
步骤sc8:身份信息认证函数确认响应废弃物不在废弃物标识符列表中,且令牌的exist字段为1,否则流程结束。
步骤sc9:身份信息认证函数将响应废弃物Nδ加入废弃物标识符列表中,并触发认证事件,事件内容为(τ,ESπ)。由于每个响应盐值可以有2128个,因此,每个属性令牌可响应次数为2128,用户不必担心认证次数耗尽。
步骤sc10:SP本地客户端监听每个属性令牌所触发的认证事件。
步骤sc11:SP本地客户端使用SP的区块链私钥解密每个属性令牌的响应内容,对得到的解密内容进行签名验证,结果错误则流程结束,结果正确则身份信息认证成功。
本发明实施例的属性令牌注销流程图如图6所示,属性令牌注销过程具体如下:
步骤sd1:IdP通过UI接口模块指定要注销的属性令牌τ,并发送事务调用ARC合约中的令牌注销函数。
步骤sd2:令牌注销函数判断注销函数的调用者与属性令牌的创建者是否为同一区块链地址,如果是则执行步骤sd3,如果否则验证结果不正确,流程结束。
步骤sd3:令牌注销函数将属性令牌的exist字段置为0,表示该令牌被注销。
步骤sd4:IdP本地客户端监听到该事务所触发的注销事件,则注销属性令牌完成。
Claims (2)
1.一种基于区块链与零知识证明的身份管理与认证系统,其特征是,包括链上智能合约和链下实体本地客户端;
所述链上智能合约包括属性仓库合约、知识管理合约、知识验证合约和密钥仓库合约;
所述链下实体本地客户端包括UI接口模块、web3.js接口模块、零知识证明模块、通信模块和数据库模块;
设系统场景中共有三种实体:身份提供商、用户与服务提供商;一个用户的身份是由若干属性组成的,这些属性由若干身份提供商颁发或撤销,且身份提供商向用户颁发的属性与用户标识符之间的关联通过零知识证明模块隐藏,对任何人是不可见的;当用户想要访问服务提供商所提供的某些服务,该服务要求用户拥有某些属性时,用户向服务提供商证明自己拥有这些属性的所有权,且用户证明自己对属性的所有权的认证结果只有服务提供商可见;
所述属性仓库合约用于存储属性令牌;为身份提供商提供创建/注销属性令牌的函数;为实体提供查询属性令牌的详情的函数;
所述知识管理合约用于存储属性隐令牌标识符与废弃物标识符;为身份提供商提供创建属性隐令牌的函数;为用户提供身份信息认证的函数;
所述知识验证合约用于验证用户与身份提供商提交的零知识证明信息;
所述密钥仓库合约用于存储实体的通信公钥与区块链公钥;为实体提供注册公钥信息的函数;
所述UI接口模块用于根据实体输入的参数调用链下实体本地客户端中的其他模块,或者接收来自其他模块传递的消息;
所述web3.js接口模块是链下实体本地客户端与链上智能合约交互的接口,用于发送事务调用链上智能合约中的函数,以及监听链上智能合约中函数触发的事件;
所述零知识证明模块用于接收来自UI接口模块的参数,生成创建操作类型或认证操作类型的隐令牌操作零知识证明信息;
所述通信模块用于接收来自UI接口模块的参数,使用基于椭圆曲线加密数字签名算法的非对称密钥技术,该模块旨在使实体能够在网络内发送使用接收者公钥加密的消息,除指定接收者之外其他人不能解密,由于消息中包含发送方的私钥数字签名,攻击者无法伪造消息发送方的签名;
所述数据库模块允许身份提供商将其颁发的属性令牌的相关信息存储到本地数据库中;同样,用户也会将接收到的来自身份提供商的属性令牌的相关信息存储到本地数据库。
2.一种基于区块链与零知识证明的身份管理与认证方法,其特征是,包括如下步骤:
a、属性令牌创建;
b、属性隐令牌创建;属性隐令牌与属性令牌一一对应,属性隐令牌与用户身份标识的映射关系通过零知识证明隐藏;
c、身份信息认证;用户通过零知识证明向服务提供商证明自己对属性令牌的所有权;
d、属性令牌注销;
步骤a属性令牌创建,具体如下:身份提供商按照属性令牌元数据格式发送事务调用令牌创建函数,创建该令牌的身份提供商的区块链地址会记录在属性令牌中,令牌创建函数为属性令牌生成唯一标识;
步骤b属性隐令牌创建,具体如下:身份提供商想要将步骤a中生成的属性令牌颁发给用户,首先为该令牌生成令牌盐值,随后将属性令牌标识符、用户区块链公钥与令牌盐值共同哈希得到隐令牌标识符,接着身份提供商通过零知识证明生成创建隐令牌操作零知识证明信息,并发送事务调用隐令牌创建函数,所述创建隐令牌操作零知识证明信息得到验证,即在不公开令牌盐值与用户区块链公钥的情况下证明该隐令牌标识符的哈希前像中包含令牌盐值与用户区块链公钥,对隐令牌标识符进行存储并修改属性令牌的关联状态为已关联,最后身份提供商通过通信模块将令牌盐值发送给用户,用户确认令牌盐值的正确性并存储到本地数据库中;
步骤c身份信息认证,具体如下:用户需要为服务提供商透露自己的身份信息时,首先用户向服务提供商发起断言,声称自己拥有某些属性令牌的所有权并接收服务提供商返回的质询内容;用户需要在本次身份信息认证操作中证明对这些属性令牌的所有权,即证明自己拥有这些属性令牌所对应的隐令牌标识符的哈希前像中包含的区块链公钥所对应的区块链私钥;
用户对每一属性令牌的所有权的拥有证明如下:用户生成响应内容、响应盐值与响应废弃物,随后通过零知识证明生成认证隐令牌操作零知识证明信息,用户通过一次性匿名地址发送事务调用身份认证函数,所述认证隐令牌操作零知识证明信息得到验证,身份认证函数确认响应废弃物不在废弃物标识符列表中,且该属性令牌未被注销,随后将响应废弃物加入废弃物标识符列表中并触发认证事件;
若服务提供商成功监听到每个属性令牌的认证事件并成功验证响应内容,则身份信息认证成功;
步骤d属性令牌注销,具体如下:身份提供商想要注销步骤a中生成的属性令牌,身份提供商发送事务调用令牌注销函数并指定要注销的属性令牌,令牌注销函数会检查本次调用函数的发起者是否为该属性令牌的创建者,验证成功后注销令牌并触发注销事件,身份提供商成功监听到该令牌的注销事件则令牌注销成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245614.1A CN111447073B (zh) | 2020-03-31 | 2020-03-31 | 基于区块链与零知识证明的身份管理与认证系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245614.1A CN111447073B (zh) | 2020-03-31 | 2020-03-31 | 基于区块链与零知识证明的身份管理与认证系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111447073A CN111447073A (zh) | 2020-07-24 |
CN111447073B true CN111447073B (zh) | 2023-04-18 |
Family
ID=71652701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010245614.1A Active CN111447073B (zh) | 2020-03-31 | 2020-03-31 | 基于区块链与零知识证明的身份管理与认证系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111447073B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532599B (zh) * | 2020-11-19 | 2023-04-18 | 北京信安世纪科技股份有限公司 | 一种动态鉴权方法、装置、电子设备和存储介质 |
CN113177225B (zh) * | 2021-03-16 | 2022-03-18 | 深圳市名竹科技有限公司 | 基于区块链的数据存储证明方法、装置、设备和存储介质 |
CN113452701B (zh) * | 2021-06-28 | 2023-04-18 | 上海计算机软件技术开发中心 | 跨链系统、面向跨链系统的分布式用户身份认证方法 |
CN113645196A (zh) * | 2021-07-20 | 2021-11-12 | 南京理工大学 | 一种基于区块链与边缘辅助的物联网设备认证方法及系统 |
CN114070567A (zh) * | 2021-09-28 | 2022-02-18 | 中诚区块链研究院(南京)有限公司 | 一种零知识证明等区块链身份认证及隐私保护核心技术 |
CN114186248B (zh) * | 2021-11-13 | 2022-08-05 | 云南财经大学 | 基于区块链智能合约的零知识证明可验证凭证数字身份管理系统及方法 |
CN114726537B (zh) * | 2022-03-31 | 2024-03-26 | 蚂蚁区块链科技(上海)有限公司 | 数据处理方法及装置 |
US12033762B2 (en) * | 2022-04-28 | 2024-07-09 | Huawei Technologies Co., Ltd. | Method of non-interactive zero-knowledge crowd verifiable digital contact tracing |
CN114938280A (zh) * | 2022-05-24 | 2022-08-23 | 中国科学技术大学 | 一种基于非交互零知识证明与智能合约的认证方法及系统 |
CN115051807B (zh) * | 2022-06-02 | 2024-05-24 | 昆明理工大学 | 一种基于超级账本Fabric的零知识身份认证方法 |
CN115001715B (zh) * | 2022-08-02 | 2022-10-21 | 药融云数字科技(成都)有限公司 | 基于区块链的加密智能合约检测方法及终端 |
CN115470468B (zh) * | 2022-11-14 | 2023-02-03 | 安徽中科晶格技术有限公司 | 基于区块链预置合约的身份链构建方法、装置及存储介质 |
US12015713B1 (en) | 2023-08-23 | 2024-06-18 | Yuga Labs, Inc. | Artificial intelligence protocols for enhancing token holder autonomy |
CN116881873B (zh) * | 2023-09-06 | 2023-12-08 | 国网数字科技控股有限公司 | 业务主体的身份认证方法、装置、电子设备和存储介质 |
CN118174888A (zh) * | 2023-12-20 | 2024-06-11 | 江苏云启未来网络科技有限公司 | 一种基于web3.0的去中心化身份认证服务系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911216A (zh) * | 2017-10-26 | 2018-04-13 | 矩阵元技术(深圳)有限公司 | 一种区块链交易隐私保护方法及系统 |
CN109194708A (zh) * | 2018-07-24 | 2019-01-11 | 哈尔滨工程大学 | 一种基于区块链技术的分布式存储系统及其身份认证方法 |
CN109936570A (zh) * | 2019-02-21 | 2019-06-25 | 领信智链(北京)科技有限公司 | 一种基于以太坊区块链的去中心化标识符属性管理系统 |
CN110224837A (zh) * | 2019-06-06 | 2019-09-10 | 西安纸贵互联网科技有限公司 | 基于分布式身份标识的零知识证明方法及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10284654B2 (en) * | 2016-09-27 | 2019-05-07 | Intel Corporation | Trusted vehicle telematics using blockchain data analytics |
-
2020
- 2020-03-31 CN CN202010245614.1A patent/CN111447073B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911216A (zh) * | 2017-10-26 | 2018-04-13 | 矩阵元技术(深圳)有限公司 | 一种区块链交易隐私保护方法及系统 |
CN109194708A (zh) * | 2018-07-24 | 2019-01-11 | 哈尔滨工程大学 | 一种基于区块链技术的分布式存储系统及其身份认证方法 |
CN109936570A (zh) * | 2019-02-21 | 2019-06-25 | 领信智链(北京)科技有限公司 | 一种基于以太坊区块链的去中心化标识符属性管理系统 |
CN110224837A (zh) * | 2019-06-06 | 2019-09-10 | 西安纸贵互联网科技有限公司 | 基于分布式身份标识的零知识证明方法及终端 |
Non-Patent Citations (1)
Title |
---|
"零知识证明应用到区块链中的技术挑战";李康,孙毅,张珺,李军,周继华,李忠诚;《大数据》;20180115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111447073A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111447073B (zh) | 基于区块链与零知识证明的身份管理与认证系统及方法 | |
US20230224167A1 (en) | Access control method based on zero-trust security, device, and storage medium | |
Jiang et al. | Robust extended chaotic maps-based three-factor authentication scheme preserving biometric template privacy | |
Tsai et al. | A privacy-aware authentication scheme for distributed mobile cloud computing services | |
Kohl et al. | The evolution of the Kerberos authentication service | |
Jangirala et al. | A multi-server environment with secure and efficient remote user authentication scheme based on dynamic ID using smart cards | |
Katz et al. | Efficient and secure authenticated key exchange using weak passwords | |
Wu et al. | A provably secure three‐factor authentication protocol for wireless sensor networks | |
US11411746B2 (en) | Systems, methods, and storage media for permissioned delegation in a computing environment | |
Wang et al. | EIDM: A ethereum-based cloud user identity management protocol | |
US20090240936A1 (en) | System and method for storing client-side certificate credentials | |
Srinivas et al. | Provably secure biometric based authentication and key agreement protocol for wireless sensor networks | |
Irshad et al. | A provable and secure mobile user authentication scheme for mobile cloud computing services | |
Irshad et al. | An improved lightweight multiserver authentication scheme | |
Wu et al. | A Provably Secure Authentication and Key Agreement Protocol in Cloud‐Based Smart Healthcare Environments | |
Li et al. | Pistis: Issuing trusted and authorized certificates with distributed ledger and TEE | |
Hussain et al. | An improved authentication scheme for digital rights management system | |
Mir et al. | Decentralized, Privacy‐Preserving, Single Sign‐On | |
Rajamanickam et al. | EAPIOD: ECC based authentication protocol for insider attack protection in IoD scenario | |
CN115706729B (zh) | 一种服务提供方法及装置、设备、存储介质 | |
Mahmood et al. | Revised anonymous authentication protocol for adaptive client‐server infrastructure | |
CN101242263B (zh) | 基于可扩展标志语言安全策略的网格安全处理方法 | |
Luo et al. | Provably Secure ECC‐Based Three‐Factor Authentication Scheme for Mobile Cloud Computing with Offline Registration Centre | |
Hosseyni et al. | Formal Security Analysis of the OpenID Financial-grade API 2.0 | |
CN110166452A (zh) | 一种基于JavaCard共享接口的访问控制方法及系统 |
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 |