CN111460499B - 一种保护隐私的基于Merkletree的区块链用户属性集核验方法 - Google Patents
一种保护隐私的基于Merkletree的区块链用户属性集核验方法 Download PDFInfo
- Publication number
- CN111460499B CN111460499B CN202010243336.6A CN202010243336A CN111460499B CN 111460499 B CN111460499 B CN 111460499B CN 202010243336 A CN202010243336 A CN 202010243336A CN 111460499 B CN111460499 B CN 111460499B
- Authority
- CN
- China
- Prior art keywords
- attribute
- user
- data
- identity provider
- attribute set
- 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
Images
Classifications
-
- 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
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及区块链技术领域,本发明公开了一种保护隐私的基于Merkletree的区块链用户属性集核验方法,用户注册并发布属性集数据,身份提供方对发布的属性集数据生成全局唯一标识,依赖方基于Merkletree确认用户数据合法签发和有效;基于零知识证明保护用户敏感认证数据隐私,将叶子节点数据的根哈希Merklehash和数据全局唯一标识绑定写入区块。本发明采用Merkletree算法对属性集里所有属性的线索进行简单哈希计算,降低了身份提供方属性签发和依赖方对属性核验时区块链的计算开销和存储开销,保证依赖方对属性签发的合法性的高效确认。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种保护隐私的基于Merkletree的区块链用户属性集核验方法。
背景技术
传统数据存证技术将电子数据存放在服务器上,具有被篡改、丢失、损毁的风险。区块链技术具有公开透明、不可篡改的特点,为数据存证的安全风险提供了重要解决手段。当前基于区块链的数据存证技术通常采用哈希算法将数据指纹与数据绑定方式存储,用户须提供所有明文数据才能完成正确验证,无法仅提供部分子数据的验证,使得用户数据被访问的细粒度过粗。与此同时,一些特定敏感数据以明文方式提供验证方,同样泄露了用户隐私。
发明内容
为解决身份核验中,用户数据被认证细粒度过粗、敏感认证数据明文被泄露,本发明提供一种保护隐私的基于Merkletree的区块链用户属性集核验方法,对发布的属性集数据生成全局唯一标识,基于Merkletree确认用户数据合法签发和有效,基于零知识证明保护用户敏感认证数据隐私,将叶子节点数据的根哈希Merklehash和数据全局唯一标识绑定写入区块。
一种保护隐私的基于Merkletree的区块链用户属性集核验方法,用户注册并发布属性集数据,身份提供方对发布的属性集数据生成全局唯一标识,依赖方基于Merkletree确认用户数据合法签发和有效;基于零知识证明保护用户敏感认证数据隐私,将叶子节点数据的根哈希Merklehash和数据全局唯一标识绑定写入区块。
进一步的,所述用户注册并发布属性集数据包括以下步骤:
S11.用户生成私钥k和公钥K=kG,输入ID/password请求注册;
S12.身份提供方代理服务器检测ID是否已注册过,未注册则签发ID,生成返回签发ID和绑定的公钥PK;
S13.用户按客户端属性界面模板上传证件,客户端读取属性集<attr>={m1,m2,m3,m4},并将<attr>上传至身份提供方代理服务器。
进一步的,所述身份提供方对发布的属性集数据生成全局唯一标识包括以下步骤:
S21.身份提供方核验属性,对属性集签名,录入随机数集(<attr>||<Ek(mi)>||<Ri>),对其中的每个属性计算Ai=miG(i=1,2,3,4),得到属性映射集<Ai>,生成私钥k;计算ci=Hash(Ai||PK||Ri)和zi=ri+ci*PK,其中i=1,2,3,4;
S22.令attrbutei=ID||PK||Ri||Ek(mi)||zi,身份提供方对每个细粒度子属性attributei计算哈希Hashi=Hash(attributei),得到Hash1、Hash2、Hash3、Hash4,再计算Hash12、Hash34和Merklehash,并签名记链;
S23.区块链智能合约验证身份提供方签名成功,并将MerkleHash记链,返回身份提供方记链成功消息,身份提供方将认证过的属性集<attributei>返回用户,表示注册成功。
进一步的,步骤S21中,身份提供方核验属性的方式包括线下证件认证和实名认证。
进一步的,所述依赖方基于Merkletree确认用户数据合法签发包括以下步骤:
S31.用户选择需要出示的属性attributex,其中x∈[1,2,3,4],客户端后台计算属性集<attributei>中其他除attributex以外剩余属性的hash值,并发送认证信息<attributex||<hashi>>给依赖方,其中attributex=ID||PK||R||Ek(mx)||zx,i≠x;
S32.依赖方获得用户选择过的属性集<attributex||<hashi>>;对attributex哈希处理后与属性集<attr>中其他属性哈希一起计算,通过Hash1、Hash2、Hash3、Hash4计算Hash12、Hash34,再计算MerkleHash;
S33.根据用户ID查验区块链对比Merklehash’=Merklehash是否成立,并验证区块链存储的MerkleHash根签名是否为该依赖方信任的身份提供方所签发;若成立,则属性合法性、完整性通过验证。
进一步的,所述依赖方基于Merkletree确认用户数据有效包括以下步骤:
S41.用户根据客户端界面显示的依赖方认证需求选择属性,向依赖方发起访问,发送认证信息<attributex||<hashi>>;
S42.依赖方对收到的具体属性密文attributei=ID||PK||Ri||Ek(mi)||zi进行验证,验证等式Ek(mi)G=Ai+PK是否成立,如成立则可以判定密文属性对应属性锚点A;
S43.依赖方对密钥密文进行验证,计算ci=Hash(Ai||PK||Ri),验证等式ziG=Ri+ciPK是否成立,如成立,则可以判断Ek(mi)是由用户发来的密钥密文zi所对应的密钥加密,如上判定用户已具有所需要的属性;
S44.判定用户是否该属性的合法持有者,依赖方向区块链智能合约提交属性收据Ri,用户向智能合约提交凭证ri,智能合约计算Ri=riG是否成立,如成立,向用户签发访问通证,认证成功;否则,返回验证失败。
本发明的有益效果在于:
(1)本发明Merkletree算法对属性集里所有属性的线索进行简单哈希计算,降低了身份提供方属性签发和依赖方对属性核验时区块链的计算开销和存储开销,保证依赖方对属性签发的合法性的高效确认;
(2)在依赖方核验用户属性时,用户能够选择细粒度的属性向依赖方出示,防止属性过度分享,保护用户隐私;此外,对敏感属性的出示,用户能够选择以非交互零知识证明方法完成身份认证,保护敏感属性信息不被泄露的同时降低与依赖方之间的通信开销。
附图说明
图1本发明的用户注册及属性发布流程图;
图2本发明的属性集全集完整校验图;
图3本发明的属性集部分属性完整校验图;
图4本发明的细粒度属性的合法性和正确性验证流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现说明本发明的具体实施方式。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供了一种保护隐私的基于Merkletree的区块链用户属性集核验方法,用户注册并发布属性集数据,身份提供方对发布的属性集数据生成全局唯一标识,依赖方基于Merkletree确认用户数据合法签发和有效;基于零知识证明保护用户敏感认证数据隐私,将叶子节点数据的根哈希Merklehash和数据全局唯一标识绑定写入区块。
在本发明的一个优选实施例中,区块链用户属性集核验方法共分为两个阶段:用户注册并发布属性和属性验证。***设置:用户存证属性集attribute,attribute包括子属性:attribute1、attribute2、attribute3、attribute4。具体的:
1.用户注册及属性发布,如图1所示:
S11.用户生成私钥k和公钥K=kG,输入ID/password请求注册;
S12.身份提供方代理服务器检测ID是否已注册过,未注册则签发ID,生成返回签发ID和绑定的公钥PK;
S13.用户按客户端属性界面模板上传证件,客户端读取属性集<attr>={m1,m2,m3,m4},并将<attr>上传至身份提供方代理服务器。
S14.身份提供方核验属性(如线下证件、实名等方式),对属性集签名,录入随机数集(<attr>||<Ek(mi)>||<Ri>),对其中的每个属性计算Ai=miG(i=1,2,3,4),得到属性映射集<Ai>,生成私钥k;计算ci=Hash(Ai||PK||Ri)和zi=ri+ci*PK,其中i=1,2,3,4;
S15.令attrbutei=ID||PK||Ri||Ek(mi)||zi,身份提供方对每个细粒度子属性attributei计算哈希Hashi=Hash(attributei),得到Hash1、Hash2、Hash3、Hash4,再计算Hash12、Hash34和Merklehash,并签名记链;
S16.区块链智能合约验证身份提供方签名成功,并将MerkleHash记链,返回身份提供方记链成功消息,身份提供方将认证过的属性集<attributei>返回用户,表示注册成功。
2.属性验证
2.1部分及全部属性签发的合法性、完整性验证:
S21.用户选择需要出示的属性attributex,如图3所示,其中x∈[1,2,3,4],客户端后台计算属性集<attributei>中其他除attributex以外剩余属性的hash值,并发送认证信息<attributex||<hashi>>给依赖方,其中attributex=ID||PK||R||Ek(mx)||zx,i≠x;如果用户需要对属性集全集进行校验,如图2所示,则无需将剩余属性的hash值发送,即发送认证信息<attribute1||……||attributen>,其中n=4,推而广之,该方法可推广至n个属性的认证范例;
S22.依赖方获得用户选择过的属性集<attributex||<hashi>>;对attributex哈希处理后与属性集<attr>中其他属性哈希一起计算,通过Hash1、Hash2、Hash3、Hash4计算Hash12、Hash34,再计算MerkleHash,如图3所示;
S23.根据用户ID查验区块链对比Merklehash’=Merklehash是否成立,并验证区块链存储的MerkleHash根签名是否为该依赖方信任的身份提供方所签发;若成立,则属性合法性、完整性通过验证。
2.2细粒度属性的合法性和正确性验证,如图4所示:
S31.用户根据客户端界面显示的依赖方认证需求选择属性,向依赖方发起访问,发送认证信息<attributex||<hashi>>;
S32.依赖方对收到的具体属性密文attributei=ID||PK||Ri||Ek(mi)||zi进行验证,验证等式Ek(mi)G=Ai+PK是否成立,如成立则可以判定密文属性对应属性锚点A;
S33.依赖方对密钥密文进行验证,计算ci=Hash(Ai||PK||Ri),验证等式ziG=Ri+ciPK是否成立,如成立,则可以判断Ek(mi)是由用户发来的密钥密文zi所对应的密钥加密,如上判定用户已具有所需要的属性;
S34.判定用户是否该属性的合法持有者,依赖方向区块链智能合约提交属性收据Ri,用户向智能合约提交凭证ri,智能合约计算Ri=riG是否成立,如成立,向用户签发访问通证,认证成功;否则,返回验证失败。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (2)
1.一种保护隐私的基于Merkletree的区块链用户属性集核验方法,其特征在于,用户注册并发布属性集数据,身份提供方对发布的属性集数据生成全局唯一标识,依赖方基于Merkletree确认用户数据合法签发和有效;基于零知识证明保护用户敏感认证数据隐私,将叶子节点数据的根哈希Merklehash和数据全局唯一标识绑定写入区块;
所述用户注册并发布属性集数据包括以下步骤:
S11.用户生成私钥k和公钥K=kG,输入ID/password请求注册;
S12.身份提供方代理服务器检测ID是否已注册过,未注册则签发ID,生成返回签发ID和绑定的公钥PK;
S13.用户按客户端属性界面模板上传证件,客户端读取属性集<attr>={m1,m2,m3,m4},并将<attr>上传至身份提供方代理服务器;
所述身份提供方对发布的属性集数据生成全局唯一标识包括以下步骤:
S21.身份提供方核验属性,对属性集签名,录入随机数集(<attr>||<Ek(mi)>||<Ri>),对其中的每个属性计算Ai=miG(i=1,2,3,4),得到属性映射集<Ai>,生成私钥k;计算ci=Hash(Ai||PK||Ri)和zi=ri+ci*PK,其中i=1,2,3,4;
S22.令attrbutei=ID||PK||Ri||Ek(mi)||zi,身份提供方对每个细粒度子属性attributei计算哈希Hashi=Hash(attributei),得到Hash1、Hash2、Hash3、Hash4,再计算Hash12、Hash34和Merklehash,并签名记链;
S23.区块链智能合约验证身份提供方签名成功,并将MerkleHash记链,返回身份提供方记链成功消息,身份提供方将认证过的属性集<attributei>返回用户,表示注册成功;
所述依赖方基于Merkletree确认用户数据合法签发包括以下步骤:
S31.用户选择需要出示的属性attributex,其中x∈[1,2,3,4],客户端后台计算属性集<attributei>中其他除attributex以外剩余属性的hash值,并发送认证信息<attributex||<hashi>>给依赖方,其中attributex=ID||PK||R||Ek(mx)||zx,i≠x;
S32.依赖方获得用户选择过的属性集<attributex||<hashi>>;对attributex哈希处理后与属性集<attr>中其他属性哈希一起计算,通过Hash1、Hash2、Hash3、Hash4计算Hash12、Hash34,再计算MerkleHash;
S33.根据用户ID查验区块链对比Merklehash’=Merklehash是否成立,并验证区块链存储的MerkleHash根签名是否为该依赖方信任的身份提供方所签发;若成立,则属性合法性、完整性通过验证;
所述依赖方基于Merkletree确认用户数据有效包括以下步骤:
S41.用户根据客户端界面显示的依赖方认证需求选择属性,向依赖方发起访问,发送认证信息<attributex||<hashi>>;
S42.依赖方对收到的具体属性密文attributei=ID||PK||Ri||Ek(mi)||zi进行验证,验证等式Ek(mi)G=Ai+PK是否成立,如成立则可以判定密文属性对应属性锚点A;
S43.依赖方对密钥密文进行验证,计算ci=Hash(Ai||PK||Ri),验证等式ziG=Ri+ciPK是否成立,如成立,则可以判断Ek(mi)是由用户发来的密钥密文zi所对应的密钥加密,如上判定用户已具有所需要的属性;
S44.判定用户是否该属性的合法持有者,依赖方向区块链智能合约提交属性收据Ri,用户向智能合约提交凭证ri,智能合约计算Ri=riG是否成立,如成立,向用户签发访问通证,认证成功;否则,返回验证失败。
2.根据权利要求1所述的一种保护隐私的基于Merkletree的区块链用户属性集核验方法,其特征在于,步骤S21中,身份提供方核验属性的方式包括线下证件认证和实名认证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010243336.6A CN111460499B (zh) | 2020-03-31 | 2020-03-31 | 一种保护隐私的基于Merkletree的区块链用户属性集核验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010243336.6A CN111460499B (zh) | 2020-03-31 | 2020-03-31 | 一种保护隐私的基于Merkletree的区块链用户属性集核验方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111460499A CN111460499A (zh) | 2020-07-28 |
CN111460499B true CN111460499B (zh) | 2022-03-15 |
Family
ID=71683450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010243336.6A Active CN111460499B (zh) | 2020-03-31 | 2020-03-31 | 一种保护隐私的基于Merkletree的区块链用户属性集核验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460499B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737675A (zh) * | 2020-08-14 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的电子签名方法及装置 |
CN115514502A (zh) * | 2021-06-03 | 2022-12-23 | 中移雄安信息通信科技有限公司 | 一种基于区块链的边缘计算平台身份认证方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11130042B2 (en) * | 2016-02-02 | 2021-09-28 | Bao Tran | Smart device |
US10313134B2 (en) * | 2016-10-27 | 2019-06-04 | Denso Corporation | System and method for authenticating and authorizing devices |
CN106911513B (zh) * | 2016-12-14 | 2019-12-13 | 中国电子科技集团公司第三十研究所 | 一种基于去中心化网络的可信设备管理方法 |
CN106796688B (zh) * | 2016-12-26 | 2020-12-18 | 深圳前海达闼云端智能科技有限公司 | 区块链的权限控制方法、装置、***及节点设备 |
CN107682308B (zh) * | 2017-08-16 | 2019-12-13 | 北京航空航天大学 | 基于区块链潜信道技术的电子证据保存*** |
CN109858281B (zh) * | 2019-02-01 | 2020-09-18 | 杭州云象网络技术有限公司 | 一种基于零知识证明的区块链账户模型隐私保护方法 |
CN110414270B (zh) * | 2019-08-01 | 2022-12-06 | 谈建中 | 一种基于区块链的个人数据保护***及方法 |
-
2020
- 2020-03-31 CN CN202010243336.6A patent/CN111460499B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111460499A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11133943B2 (en) | Issuing virtual documents in a block chain | |
US11516016B2 (en) | Method and system for signing and authenticating electronic documents via a signature authority which may act in concert with software controlled by the signer | |
CN108777684B (zh) | 身份认证方法、***及计算机可读存储介质 | |
KR101829729B1 (ko) | 블록체인 및 이와 연동하는 머클 트리 구조를 통해 모바일 아이디를 이용하여 사용자를 인증하는 방법, 단말 및 이를 이용한 서버 | |
JP3522447B2 (ja) | 認証交換方法および付加型公衆電子署名方法 | |
US20020026578A1 (en) | Secure usage of digital certificates and related keys on a security token | |
US20120260093A1 (en) | Portable Security Transaction Protocol | |
CN112311538B (zh) | 一种身份验证的方法、装置、存储介质及设备 | |
CN111010272B (zh) | 一种标识私钥生成和数字签名方法及***和装置 | |
CN111160909B (zh) | 区块链供应链交易隐藏静态监管***及方法 | |
CN111460525B (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN112165382A (zh) | 软件授权方法、装置、授权服务端及终端设备 | |
CN111460499B (zh) | 一种保护隐私的基于Merkletree的区块链用户属性集核验方法 | |
US20030221109A1 (en) | Method of and apparatus for digital signatures | |
Das et al. | A secure blockchain-enabled vehicle identity management framework for intelligent transportation systems | |
WO2023236720A1 (zh) | 设备认证和校验的方法、装置、设备和存储介质 | |
US20240187259A1 (en) | Method and apparatus for generating, providing and distributing a trusted electronic record or certificate based on an electronic document relating to a user | |
CN114389810B (zh) | 证明生成方法及装置、电子设备、存储介质 | |
JP2002215027A (ja) | 属性証明プログラム及び装置 | |
KR20120091618A (ko) | 연쇄 해시에 의한 전자서명 시스템 및 방법 | |
CN108540447A (zh) | 一种基于区块链的证书验证方法及*** | |
CN116975936B (zh) | 金融资质证明方法、金融资质验证方法 | |
JPH1125045A (ja) | アクセス制御方法とその装置及び属性証明書発行装置並びに機械読み取り可能な記録媒体 | |
CN114866260B (zh) | 一种变色龙哈希分布式身份使用方法和*** | |
CN111353780A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |