一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链的完全匿名认证方法

2022-06-11 21:40:39 来源:中国专利 TAG:


1.本发明属于密码学技术领域。具体涉及到基于区块链的支持证书撤销的匿名认证构造方法。


背景技术:

2.身份验证是解决系统安全管理的重要手段,有效地保证用户身份的真实性、合法性、唯一性,防止非法人员进入系统。现有的认证方案由于自身的缺陷或网络环境的问题,在实际应用中存在很多问题,主要表现在以下几个方面:一是过于依赖第三方证书管理中心,赋予证书管理中心过多的权力,这种集中式认证模式容易出现单点故障和信任危机。其次,在认证过程中,用户需要出示证件来证明自己的合法性,这往往会泄露用户的个人身份信息。第三,大多数现有的方案不支持不可链接性,这意味着恶意敌手很容易了解用户信息,或链接两个身份验证算法的执行结果。最后,当用户行为不当或证书泄漏时,需要及时撤销证书,然而,撤销问题仍然比较复杂。目前,在分布式网络环境中,一种去中心化、高效、完全匿名的认证方案受到了广大研究者的重视。
3.2016年,ouaddah等人提出了一种基于比特币思想的分布式的匿名认证机制,实现端到端认证。该机制使用访问令牌代替比特币实现各种新的交易类型,包括资源注册、访问令牌授予、委托和访问令牌的撤销。研究表明利用比特币地址进行匿名交易的方法可以实现对用户身份的隐私保护。然而,如果目标是实现完全隐私,仅使用假名是不够的,用户在连接到比特币系统时总是创建假名,但由于区块链的开放性,任何人都可以找到涉及到给定地址的所有交易,对区块链进行静态分析或主动监控网络信息解密用户,挖掘比特币地址与用户真实身份之间的关联,即实现去匿名化。


技术实现要素:

4.本发明所要解决的技术问题在于克服上述现有技术的缺点,提供一种运算效率高、运算成本低、管理简化的基于区块链的完全匿名认证方法。
5.解决上述技术问题所采用的技术方法是由以下步骤组成:
6.(1)系统初始化
7.1)证书管理中心为系统设置安全参数k,生成全局公开参数p:
8.p={n,g1,g2,g
t
,g1,g2,e}
9.其中g1,g2,g
t
是阶为n的循环群,n为有限的正整数,g1和g2分别是群g1和g2的生成元,e是一个双线性映射,满足e:g1×
g2→gt

10.2)证书管理中心设定用户身份集合u:
11.u={u1,u2,...,un}
12.其中u1,u2,...,un表示n个用户的身份,n为有限的正整数。
13.3)证书管理中心选择一个哈希函数h:
14.h:{0,1}
*
→zq
15.h将任意长度的0,1字符串映射到集合zq上,zq表示q的最小非负完全剩余系集合,即{0,1,2,

,q-1},q为有限的正整数。
16.4)证书管理中心公布全局公开参数p至区块链:
17.p={n,g1,g2,g
t
,g1,g2,e,u};
18.(2)密钥生成
19.1)证书管理中心在集合zq中随机选择三个元素x,y,z,在g1中随机选择自身的密钥sk,自身公钥pk,用户身份集合的一个累加结果δ和公开值y按下式确定:
20.sk={x,y,z}
[0021][0022][0023][0024]
2)证书管理中心建立一个空的证书撤销列表crl,将pk,y,g,δ,crl发布至区块链,自己秘密保存密钥sk。
[0025]
(3)证书发布
[0026]
1)证书管理中心为合法用户发布证书σ,在集合zq中随机选择元素h,按下式确定管理中心发布的证书σ:
[0027]
σ=(σ1,σ2)
[0028][0029][0030]
2)同时,证书管理中心确定用户ui的证书证据wi如下:
[0031][0032]
证书管理中心将证书σ和wi发送给用户ui。
[0033]
(4)自盲化
[0034]
1)用户ui收到证书管理中心发布的证书σ,验证e1与e2是否相等,确定证书σ的有效性:
[0035][0036]
e2=e(σ2,g2)
[0037]
e1与e2相等,证书σ有效,e1与e2不相等,证书σ无效。
[0038]
2)用户ui在集合zq中随机选择元素ei,ri,按下式确定元素ei,ri的承诺值c:
[0039][0040]
承诺值c表示用户ui自己产生的证书,用户ui将承诺值c嵌入在一个区块链交易事务的输出,同时通过区块链交易消费掉证书管理中心发布的证书σ,用户ui秘密保存元素ei,ri。
[0041]
(5)证明
[0042]
1)用户ui选择一个任意的证书集合c,如果则证明终止,如果c∈c,用户ui产生第一个零知识证明π1:
[0043][0044]
零知识证明π1在不出示ei,si,ri,y

,w

信息的同时向验证者证明自己拥有这些元素,且满足上式关系,其中:
[0045][0046][0047][0048]y′
,si为用户ui在集合zq中随机选择的元素,ci∈c,m为有限的正整数,δ

表示用户ui对证书集合c的一个累加结果,w

表示用户ui自己产生的证书ci的证据,cw′
表示对证据w

的转换。
[0049]
用户ui将下式的发送给验证者:
[0050][0051][0052]sα
=r
α-η
×
(ei y)
[0053]sβ
=r
β-η
×
si[0054][0055]
η=h(cw′
,t1,t2)
[0056]
其中为用户ui在集合zq中随机选择的元素。
[0057]
2)用户ui产生第二个零知识证明π2:
[0058][0059]
在不出示φ,ui,wi信息的同时,向验证者证明自己拥有这些元素,且满足上式关系,其中:
[0060]
si=y
φ
[0061][0062][0063][0064]
φ为用户ui在集合zq中随机选择的元素,y

表示对y

的承诺,y表示对y的承诺。
[0065]
用户ui将下式的a,d,k,t1,t2,s
x
,sk,su发送给验证者:
[0066][0067][0068]
k=r
x
×
ui[0069][0070][0071]
η=h(t1,t2,si)
[0072]sx
=ρ
x
η
′×rx
[0073]
sk=ρk η
′×k[0074]
su=ρu η
′×
ui[0075]
其中r
x
,ρ
x
,ρi,ρk为用户ui在集合zq中随机选择的元素。
[0076]
3)用户ui输出π1,π2,δ

,c。
[0077]
(6)验证
[0078]
验证者利用公开参数验证π1,π2的有效性。
[0079]
1)验证π1有效性
[0080]
按下式确定验证参数t
′1和验证参数t
′2:
[0081][0082][0083]
验证t1与t
′1是否相等,t2与t
′2是否相等,若同时相等,π1有效,若不相等,π1无效。
[0084]
2)验证π2有效性
[0085]
验证与t1×aη

是否相等,与是否相等,若同时相等,π2有效,若不相等,π2无效。
[0086]
3)如果π1,π2验证有效,则输出成功,如果π1,π2验证无效,则输出失败。
[0087]
(7)撤销
[0088]
撤销一个用户uj时,证书管理中心更新列表crl和δ,方法如下:
[0089]
crl=crl∪{uj}
[0090][0091]
完成用户ui撤销操作。
[0092]
在本发明的(1)步骤的2)步骤中,证书管理中心设定用户身份集合u:
[0093]
u={u1,u2,...,un}
[0094]
其中u1,u2,...,un表示n个用户的身份,n取值为20~100。
[0095]
本发明将区块链作为公告板,记录公开参数、公开密钥和相关交易信息,通过证书交易实现身份认证,用户通过证书管理中心获得原始证书,为了实现匿名认证,用户运行自盲化方法,首先选取两个随机数e,r,生成两个随机数的承诺值c,表示一个新的证书。用户将承诺值c发布到区块链上,同时销毁原始的认证证书,在不依赖第三方的情况下完成证书的盲化操作。在证明步骤中,用户一方面在不泄露任何信息的情况下证明自己确实掌握了合法的证书,另一方面证明自己的原始证书没有被证书管理中心撤销,该步骤可以快速证明证书的有效性和合法性,提高了本发明的运算效率和运算成本。在验证步骤中,验证者可以快速用户证书的合法性而不暴露证书中的身份信息,实现证书的匿名性。在撤销步骤,证书管理者可以随时撤销用户证书,被撤销的用户将失去证明证书合法性的能力,未被撤销的用户则可以自主更新证书的证据。本发明方法可用于匿名身份认证技术领域。
附图说明
[0096]
图1是本发明实施例1的流程图。
[0097]
图2是实施例1密钥生成步骤和证书发布步骤与运行时间的实验结果图。
[0098]
图3是实施例1证明步骤和验证步骤与运行时间的实验结果图。
具体实施方式
[0099]
下面结合附图和实施例对本发明进一步详细说明,但本发明不限于下述的实施方式。
[0100]
实施例1
[0101]
在图1中,本实施例的基于区块链的完全匿名认证方法由以下步骤组成:
[0102]
(1)系统初始化
[0103]
1)证书管理中心为系统设置安全参数k,生成全局公开参数p:
[0104]
p={n,g1,g2,g
t
,g1,g2,e}
[0105]
其中g1,g2,g
t
是阶为n的循环群,n为有限的正整数,g1和g2分别是群g1和g2的生成元,e是一个双线性映射,满足e:g1×
g2→gt

[0106]
2)证书管理中心设定用户身份集合u:
[0107]
u={u1,u2,...,un}
[0108]
其中u1,u2,...,un表示n个用户的身份,n为有限的正整数,本实施例的n取值为50。
[0109]
3)证书管理中心选择一个哈希函数h:
[0110]
h:{0,1}
*
→zq
[0111]
h将任意长度的0,1字符串映射到集合zq上,zq表示q的最小非负完全剩余系集合,即{0,1,2,...,q-1},q为有限的正整数。
[0112]
4)证书管理中心公布全局公开参数p至区块链:
[0113]
p={n,g1,g2,g
t
,g1,g2,e,u}。
[0114]
(2)密钥生成
[0115]
1)证书管理中心在集合zq中随机选择三个元素x,y,z,在g1中随机选择自身的密钥sk,自身公钥pk,用户身份集合的一个累加结果δ和公开值y按下式确定:
[0116]
sk={x,y,z}
[0117][0118][0119][0120]
2)证书管理中心建立一个空的证书撤销列表crl,将pk,y,g,δ,crl发布至区块链,自己秘密保存密钥sk。
[0121]
(3)证书发布
[0122]
1)证书管理中心为合法用户发布证书σ,在集合zq中随机选择元素h,按下式确定管理中心发布的证书σ:
[0123]
σ=(σ1,σ2)
[0124][0125][0126]
2)同时,证书管理中心确定用户ui的证书证据wi如下:
[0154][0155]
在不出示φ,ui,wi信息的同时,向验证者证明自己拥有这些元素,且满足上式关系,其中:
[0156]
si=y
φ
[0157][0158][0159][0160]
其中φ为用户ui在集合zq中随机选择的元素,y

表示对y

的承诺,y表示对y的承诺。
[0161]
用户ui将下式的a,d,k,t1,t2,s
x
,sk,su发送给验证者:
[0162][0163][0164]
k=r
x
×
ui[0165][0166][0167]
η

=h(t1,t2,si)
[0168]sx
=ρ
x
η
′×rx
[0169]
sk=ρ
x
η
′×k[0170]
su=ρu η
′×
ui[0171]
其中r
x
,ρ
x
,ρu,ρk为用户ui在集合zq中随机选择元素。
[0172]
3)用户ui输出π1,π2,δ

,c。
[0173]
在证明步骤中,用户一方面在不泄露任何信息的情况下证明自己确实掌握了合法的证书,另一一方面证明自己的原始证书没有被证书管理中心撤销,可以快速证明证书的有效性和合法性。
[0174]
(6)验证
[0175]
验证者利用公开参数验证π1,π2的有效性。
[0176]
1)验证π1有效性
[0177]
按下式确定验证参数t
′1和验证参数t
′2:
[0178][0179][0180]
验证t1与t
′1是否相等,t2与t
′2是否相等,若同时相等,π1有效,若不相等,π1无效。
[0181]
2)验证π2有效性
[0182]
验证与t1×aη

是否相等,与是否相等,若同时相等,π2有效,若不相等,π2无效。
[0183]
3)如果π1,π2验证有效,则输出成功,如果π1,π2验证无效,则输出失败。
[0184]
在验证步骤中,验证者可以快速用户证书的合法性而不暴露证书中的身份信息,实现了证书的匿名性。
[0185]
(7)撤销
[0186]
撤销一个用户uj时,证书管理中心更新列表crl和δ,方法如下:
[0187]
crl=crl∪{uj}
[0188][0189]
完成用户ui撤销操作。
[0190]
完成基于区块链的完全匿名认证方法。
[0191]
在撤销步骤,证书管理者可以随时撤销用户证书,被撤销的用户将失去证明证书合法性的能力,未被撤销的用户可自主更新证书的证据。
[0192]
实施例2
[0193]
本实施例的基于区块链的完全匿名认证方法由以下步骤组成:
[0194]
(1)系统初始化
[0195]
1)证书管理中心为系统设置安全参数k,生成全局公开参数p:
[0196]
p={n,g1,g2,g
t
,g1,g2,e}
[0197]
其中g1,g2,g
t
是阶为n的循环群,n为有限的正整数,g1和g2分别是群g1和g2的生成元,e是一个双线性映射,满足e:g1×
g2→gt

[0198]
2)证书管理中心设定用户身份集合u:
[0199]
u={u1,u2,...,un}
[0200]
其中u1,u2,...,un表示n个用户的身份,n为有限的正整数,本实施例的n取值为20。
[0201]
该步骤的其它步骤与实施例1相同。
[0202]
其它步骤与实施例1相同。完成基于区块链的完全匿名认证方法。
[0203]
实施例3
[0204]
本实施例的基于区块链的完全匿名认证方法由以下步骤组成:
[0205]
(1)系统初始化
[0206]
1)证书管理中心为系统设置安全参数k,生成全局公开参数p:
[0207]
p={n,g1,g2,g
t
,g1,g2,e}
[0208]
其中g1,g2,g
t
是阶为n的循环群,n为有限的正整数,g1和g2分别是群g1和g2的生成元,e是一个双线性映射,满足e:g1×
g2→gt

[0209]
2)证书管理中心设定用户身份集合u:
[0210]
u={u1,u2,...,un}
[0211]
其中u1,u2,...,un表示n个用户的身份,n为有限的正整数,本实施例的n取值为100。
[0212]
该步骤的其它步骤与实施例1相同。
[0213]
其它步骤与实施例1相同。完成基于区块链的完全匿名认证方法。
[0214]
为了验证本发明的有益效果,发明人采用本发明实施例1的基于区块链的完全匿名认证方法进行了仿真实验,实验结果见图2、图3。在图2、3中,横坐标表示各步骤名称,纵坐标表示运行时间,柱状图表示各步骤的用时。由图2、3可见,系统初始化步骤运行时间为0.0001秒,密钥生成步骤运行时间为0.0086秒,证书撤销运行时间为0.0294秒,证书发布步
骤运行时间为0.0426,秒,证明步骤运行时间为16.8735秒,验证步骤运行时间为18.5935秒。试验结果表明本发明各步骤运行时间短。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献