[发明专利]基于区块链的跨域匿名认证方法及系统有效
申请号: | 202010882623.1 | 申请日: | 2020-08-28 |
公开(公告)号: | CN112039872B | 公开(公告)日: | 2022-07-05 |
发明(设计)人: | 毛赛;王婧;何德彪;姚明;何浩;王湾湾 | 申请(专利权)人: | 武汉见邦融智科技有限公司;深圳市洞见智慧科技有限公司 |
主分类号: | H04L9/40 | 分类号: | H04L9/40;H04L9/08;H04L9/32;H04L67/10 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 严彦 |
地址: | 430064 湖北省武汉市*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 区块 匿名 认证 方法 系统 | ||
1.一种基于区块链的跨域匿名认证方法,其特征在于:设置可信密钥生成中心为注册中心颁发公私钥对,并部署区块链智能合约管理通信方的密钥信息;注册中心为普通用户提供注册服务,生成签名实现证书认证服务,并将业务系统相关的通信方标识信息与公钥信息以隐私保护的方式存入区块链智能合约中;通信双方进行相互认证时,通过匿名的方式发送认证信息,并且调用区块链智能合约查询接口查验用户的标识信息,检验认证用户公钥是否注册;同时,智能合约管理身份标识信息与密钥信息;提供用户标识信息与密钥信息的动态更新和撤销;
跨域匿名认证实现包括以下过程,
系统初始化过程,用于生成系统的公开参数和系统主私钥;
智能合约部署过程,用于安全管理系统内各成员的身份标识信息、公钥证书和密钥信息,为跨域认证提供注册验证服务;
注册过程,用于为系统内各成员提供对应的注册服务,并调用智能合约管理其身份标识信息、公钥证书和密钥信息;
相互认证过程中,用于为系统内需要进行相互认证的成员提供身份认证与密钥协商服务,调用智能合约查询接口验证认证成员的可靠性;
密钥更新过程,用于为系统成员身份信息提供密钥更新服务,并调用智能合约对更新的信息进行管理,防止系统成员的身份可链接攻击,支持安全高效的系统成员动态加入;
密钥撤销过程,用于为系统成员身份信息提供用户服务,调用智能合约删除撤销用户的注册信息,防止密钥泄露,支持安全高效的系统成员动态撤销;
在系统初始化过程中,针对匿名认证与密钥协商的参与方,生成系统公私钥和其他参数并部署区块链平台,实现方式为由可信密钥生成中心KGC完成相关操作如下,
1)KGC选择系统安全参数κ,定义初始化基点为P和阶为q的椭圆曲线加法群并选定一个密码杂凑函数;
2)KGC选择一个随机种子,生成系统主私钥skroot和链码chaincoderoot,随后计算系统主公钥PKroot=skroot·P;
3)KGC创建一个包含相关配置参数的创世块文件File以搭建一个健壮的联盟区块链,选定若干半诚实的联盟节点共同维护区块链运行;
4)KGC秘密保存主私钥skroot,File,发布公开参数 ;
在智能合约部署过程中,部署一个隐私保护的智能合约以实现系统参与方的公私钥和身份的管理,实现方式包括进行以下操作,
1)KGC初始化两个智能合约,分别为管理注册中心注册信息的智能合约RCA和管理用户注册信息的智能合约UCA,每个智能合约均提供四个接口,分别为支持智能合约初始化接口init(·)、智能合约更新接口update(·)、智能合约查询接口query(·)和智能合约撤销接口revoke(·);
2)KGC为各个注册中心URj分配智能合约UCA的更新接口、智能合约查询接口的调用权限以及智能合约RCA的查询接口;
所述注册过程在KGC和URj、URj和Ui之间交互完成,并通过智能合约对注册信息进行记录;KGC和URj的注册流程如下,
1)URj将其身份标识IDj发送给KGC作为注册请求;
2)KGC收到注册请求后,调用BIP32.SKD(skroot,chaincoderoot,IDj)生成私钥skj,计算公钥为PKj=skj·P,并用主私钥skroot对公钥PKj生成数字签名Sigj;其中,BIP32.SKD(·)为私钥衍生子算法;
3)KGC调用智能合约RCA的更新接口update(·),将URj的信息(IDj,PKj,Sigj)添加到区块链智能合约RCA上;
4)KGC将公私钥(dj,PKj,chaincoderoot)安全秘密地发送给RUj,RUj先调用RCA的查询接口query(PKj)查询智能合约是否登记了与其身份相关的注册信息,然后验证公钥PKj=BIP32.PKD(PKroot,chaincode,IDj)是否成立,如果是则完成注册过程,否则重新发起注册请求;
URj和Ui的注册流程如下:
1)Ui向URj发送一个注册请求信息,URj返回信息(IDj,PKj,Sigj)的智能合约查询接口;
2)Ui调用接口验证签名Sigj的正确性后,先选择一个随机种子,生成私钥di、链码和公钥Di=di·P,然后将其真实身份信息IDi和链码公钥Di通过安全信道发送给URj;
3)URj收到后,先选择随机数计算密文和对公钥Di的数字签名Sigi,然后调用智能合约UCA的update()接口将信息(Di,Ci,Sigi,PKj)添加到合约UCA中;其中,Ci1、Ci2、Ci3均为部分密文信息;
4)URj返回注册成功的响应信息;
5)Ui调用智能合约UCA的查询接口query(Di)查询智能合约UCA是否登记了与其身份相关的注册信息,并验证签名Sigi的合法性,若合法则注册完成,否则重新发起注册请求;
在相互认证过程中,
由两个用户交互完成认证,设有用户U1和U2,相应公钥为D1和D2,并且认证通信的发起方已知认证接收方的公钥信息,相应操作如下,
1)U1选择一个随机数计算随机因子KK1=k1·P,签名信息S=K1-d1h(D1||t1||KK1)和认证因子然后将消息M1={KK1||X||t1}发送给U2,其中t1为U1当前的时间戳;
2)U2收到信息后检查时间戳t1是否新鲜,若不是则拒绝认证通信,否则计算并依次进行步骤:
①调用智能合约UCA的查询接口query(D1)查询是否存在D1的注册信息(Di,Ci,Sigi,PKj),
②调用RCA的查询接口query(PKj)查询是否存在URj的注册信息并验证签名Sigi的正确性,③验证等式KK1=s·P+h(D1||t1||KK)·Di是否成立,
若步骤①②③中有一个不成立,则拒绝通信,否则选择一个随机数计算随机因子KK2=k2·P,进而计算会话密钥sk21=h(KK1||KK2||k2·KK1||D1||D2),以及认证因子然后将消息M2={KK2||Y||t2}发送给U1,其中t2为U2当前的时间戳;
3)U1收到信息后检查时间戳t2是否新鲜,若不是则拒绝认证通信,否则计算会话密钥sk12=h(KK1||KK2||k1·KK2||D1||D2),和验证信息验证Y′=Y是否成立,若不成立,则认证失败,否则完成认证及会话密钥协商,为后续通信保证信息机密性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉见邦融智科技有限公司;深圳市洞见智慧科技有限公司,未经武汉见邦融智科技有限公司;深圳市洞见智慧科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010882623.1/1.html,转载请声明来源钻瓜专利网。