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

一种支持用户属性动态变化的匿名身份管理与验证方法与流程

2021-11-17 19:37:00 来源:中国专利 TAG:


1.本发明涉及一种支持用户属性动态变化的匿名身份管理与验证方法,属于区块链领域。


背景技术:

2.近几年区块链技术已成为研究的技术热点。区块链是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。该技术方案让参与系统中的任意多个节点,把一段时间系统内全部信息交流的数据,通过密码学算法计算和记录到一个数据块(block),并且生成该数据块的指纹用于链接(chain)下个数据块和校验,系统所有参与节点来共同认定记录是否为真。
3.区块链的四个主要特性是:
4.(1)去中心化(decentralized)。整个网络没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任意一个节点的损坏或者失去都不会影响整个系统的运作。
5.(2)去信任(trustless)。参与整个系统中的每个节点之间进行数据交换是无需互相信任的,整个系统的运作规则是公开透明的,所有的数据内容也是公开的。
6.(3)集体维护(collectively maintain)。系统中的数据块由整个系统中所有具有维护功能的节点来共同维护的,而这些具有维护功能的节点是任何人都可以参与的。
7.(4)可靠数据库(reliable database)。整个系统将通过分布式数据库的形式,让每个参与节点都能获得一份完整数据库的拷贝。除非能够同时控制整个系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,也无法影响其他节点上的数据内容。因此参与系统中的节点越多和计算能力越强,该系统中的数据安全性越高。
8.由以上四个特征会引申出另外2个特征:
9.(1)开源(open source):由于整个系统的运作规则必须是公开透明的,所以对于程序而言,整个系统必定会是开源的。
10.(2)隐私保护(anonymity):由于节点和节点之间是无需互相信任的,因此节点和节点之间无需公开身份,在系统中的每个参与的节点的隐私都是受到保护。
11.区块链目前分为三类:私有链、公有链、联盟链。
12.·
公有链是最早的区块链,也是目前应用最广泛的的区块链。是指像比特币区块链这样的完全去中心化的、不受任何机构控制的区块链。世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。共识过程的参与者通过密码学技术以及内建的经济激励维护数据库的安全。公有链具有完全公开、不受控制、依靠加密技术来保证安全的特点。
13.·
私有链是指存在一定的中心化控制的区块链。仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。参与的节点只有用户自己,数据的访问和使用有严格的权限管理。联
盟链由于存在一定的中心化控制,所以也可以认为是属于私有链范畴。由于在私有链中全是用户说了算,里面的数据没有无法更改的特性,对于第三方也没有多大的保障。一般用作内部审计。
14.·
联盟链是由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程。参与区块链的节点是事先选择好的,节点间很可能是有很好的网络连接。这样的区块链上可以采用非工作量证明的其他共识算法,比如有100家金融机构之间建立了某个区块链,规定必须67个以上的机构同意才算达成共识。联盟链可以做到很好的节点间的连接,只需要极少的成本就能维持运行,提供迅速的交易处理和低廉的交易费用,有很好的扩展性,但是扩展性随着节点增加又会下降。数据可保证一定的隐私,同时该区块链的应用范围有限制。
15.随着区块链技术的发展,越来越多的项目在区块链上得以部署。但是区块链的隐私保护问题却不容忽视。以电子交易区块链为例,在电子交易系统中,用户间不再需要第三方平台作为中介,可以直接进行用户与用户的交易,帮助改善买卖双方信息不对称的现状。在这样的场景中,较为常见的实例是通过用户的行为赋予用户相应的信誉值,该信誉值表示用户的诚实程度。一般而言,买卖双方都希望与信誉高的用户进行交易,交易的信息存储在区块链上,具有不可篡改以及永久性。但是由于区块链上数据的公开可访问性质,也不可避免的带来了隐私的威胁。首先,在网络层,这些交易信息在传输过程中可能存在数据被篡改的情况。其次,在交易层,交易的生成、验证、存储与使用过程中,也会存在交易信息泄露、用户身份隐私泄露的威胁。此外在应用层,即使用这些交易数据的时候同样也会面对隐私风险。因此,在实际应用中,不仅要考虑这些链上交易数据的隐私保护,也要考虑用户身份隐私,也就是说需要一种匿名身份管理与验证方法。
16.针对交易数据被使用问题的解决办法之一就是对访问数据的用户进行身份的访问控制。但是当前存在的身份管理体系,大多依赖于pki、ca这样的中心机构,因此难以在分布式的区块链场景中得到应用。针对用户身份隐私问题,目前采用的大多是伪匿名方法,但是通过数学分析的防范,仍然存在身份链接的问题。针对用户依靠信誉值自主选择交易方的问题,目前还没有研究者进行研究。
17.考虑到以上问题,结合密码学技术,将信誉值抽象为属性时,借助基于属性的签名可以帮助解决上述问题。因为在基于属性的签名方案中,通过属性对用户的身份进行刻画,一方面避免了用户真实身份的泄露,另一方面,通过对属性签名的验证可以帮助实现访问控制功能,帮助只有满足相应条件的用户才能拥有访问数据的能力。但是目前针对基于属性的签名方案的研究并不能直接应用,因为功能并不完善,缺乏分布式或者属性可变的功能,因此,通过将基于属性的签名改进为具有分布式,可变属性的功能,来实现匿名的身份管理于验证是待解决的问题。
18.考虑到使用的实际场景,所需的签名控制方案需要满足以下需求:
19.(1)有效性。对用户的身份管理与验证通过对属性的管理与验证可以实现。
20.(2)匿名性。签名验证过程中,任何第三方不能从消息以及消息的签名中获得用户的真实身份。
21.(3)不可伪造性。任何用户成员不能伪造一个假的信誉值并生成有效的签名。
22.另外,考虑到实际应用过程中,用户的属性是动态变化的,如何高效的应对用户的
的属性动态变化是亟待解决的重要问题。系统要不仅支持分布式的系统架构,在不依赖于单一权威机构的情况下实现密钥的分发,还要支持属性的动态变化。因此,如何达到高效的非中心化的动态属性的密钥分发与更新是值得研究的问题。当前并没有现有的方法或系统能解决在联盟链中的上述问题,因此需要进一步进行研究。
23.区块链涉及到访问结构和线性密钥共享方案,简要说明如下:
24.访问结构是一种描述访问策略的逻辑结构,其最初的思想来源于门限密钥共享方案。访问结构通过区分参与者集合来实现对数据的访问控制,即定义能够重构密钥的授权集合以及无法重构密钥的非授权集合。具体定义如下:
25.访问结构(access structure))设{p1,p2,...,p
n
}表示n个参与者集合,γ表示参与者集合下的某个子集。如果γ是一个单调访问结构,则γ满足:对于所有的子集a,b,若a∈γ,且那么可以得出b∈γ。且若d∈γ,则d为一个授权集合,否则为非授权集合。
26.线性秘密共享方案(linear secret sharing scheme,简称lsss))参与者集合p上的一个秘密共享方案π如果满足以下条件,就称之为z
p
(表示素数p上的群)上的线性秘密共享方案:
27.1、每个实体的秘密份额构成z
p
上的一个向量。
28.2、对于秘密共享方案π,存在一个生成矩阵m
l
×
n
,对于矩阵m的每一行i=1,2,...,l,映射ρ:{1,2,...,l}

p把其映射到参与者集合p中。设向量其中s∈z
p
是共享密钥,r2,r3,...,r
n
是用来隐藏s的随机参数,是l个秘密份额组成的向量。那么,表示分配给参与者ρ
i
的秘密份额。


技术实现要素:

29.本发明的目的在于,提供一种支持用户属性动态变化的匿名身份管理与验证方法,它可以有效解决现有技术中存在的问题,不仅可以支持属性的动态变化,很好地适应分布式的场景,而且能够完美实现身份管理与验证。
30.为解决上述技术问题,本发明采用如下的技术方案:
31.一种支持用户属性动态变化的匿名身份管理与验证方法,用于区块链网络系统,该系统包括用户、属性机构和区块链服务提供商;该属性机构负责维护属性集,生成属性密钥和公共密钥,并为用户生成属性签名密钥,不同的机构负责不同的属性,赋予用户一个或多个相应的属性,通过对这些属性的管理与验证实现对用户身份管理与验证;区块链服务提供商为用户与用户之间的交易提供一个公开平台,所有的交易信息都存储在区块链上,该方法包括以下步骤:
32.s1.系统初始化:对系统参数初始化,生成系统的全局参数,根据全局参数对属性机构初始化,生成每一个属性的属性密钥;
33.s2.属性密钥的生成与更新:用户向相应的属性机构申请属性密钥,负责相应属性的属性机构为用户分发属性密钥,在生成属性密钥的过程中不仅考虑用户身份,也考虑时间节点,以应对之后的密钥更新过程;
34.s3.签名生成:用户生成访问信息m,使用属性密钥对访问信息m进行签名,再将访问信息m和签名广播发送;
35.s4.签名验证:其他用户对访问信息m和签名进行验证,如果验证通过,该请求被处理。
36.进一步地,系统参数初始化的步骤包括:
37.(1)给定一个安全参数k,运行双线性对生成算法,得到双线性群参数,双线性群参数包括p,g,g
t
,e,g1,其中p是群g的阶数,g1分别是群g的生成元,e是映射e:g1×
g1→
g
t

38.(2)根据双线性群参数生成三个哈希函数h0:{0,1}
*

z
p
,h1:{0,1}
*

g,h:{0,1}
*

g;
39.(3)由双线性群参数和哈希函数得到全局参数:gp=(g,g
t
,e,p,g1,h0,h1,h)
40.进一步地,属性机构初始化的步骤包括:
41.(1)根据全局参数gp,每一个属性机构为负责的每一个属性选择两个随机数作为属性私钥α,y∈z
p

42.(2)属性机构为每一个属性计算相应的属性公钥:apk
(1)
=e(g1,g1)
α
,apk
(2)
=g
1y
;其中,属性i的属性私钥是ask
i
={α
i
,y
i
},属性公钥是:
43.进一步地,负责相应属性的属性机构为用户分发属性密钥的步骤包括:
44.(1)属性机构收到用户gid的属性i的属性密钥请求,获取当前的时间t,为该用户生成t时刻关于属性i的属性密钥:
45.(2)属性机构将用户请求的属性密钥发送给用户gid。
46.进一步地,当前的时间t的获取方法是:获取当前区块链中最后一个被确认的区块的时间戳时间作为当前时刻。
47.进一步地,将访问策略定义为一个矩阵a,用户使用该矩阵,全局参数gp,身份信息gid,属性密钥以及访问信息m进行签名。
48.进一步地,用户对访问信息m进行签名的步骤包括:
49.(1)用户随机选择随机数s∈z
p
、向量以及向量将s∈z
p
设置为向量的第一个元素,而向量的第一个元素设置为0;
50.(2)令v
x
代表a
x
·
v,w
x
代表a
x
·
w,其中a
x
表示矩阵a的第x行;
51.(3)用户为矩阵a的每一行a
x
都选择一个随机数r
x
∈z
p
,然后进行下列的计算:
52.σ0=e(g1,g1)
sh(m)
[0053][0054][0055]
(4)针对访问信息m生成的签名是σ=(σ0,σ
1,x

2,x
)。
[0056]
进一步地,对访问信息m和签名进行验证的步骤包括:
[0057]
(1)对于访问策略构成的矩阵a,计算一组c
x
满足等式:∑c
x
a
x
=(1,0,...,0);
[0058]
(2)使用哈希函数h,对消息进行哈希得到h(m),获取最新区块的时间戳,并计算h0(t);
[0059]
(3)进行下列计算:
[0060][0061]
(4)如果该等式成立,那么验证通过,否则,验证不通过。
[0062]
与现有技术相比,本发明具有以下优点:
[0063]
(1)本发明制定了一种支持用户属性动态变化的匿名身份管理与验证方法。该方法利用基于属性的签名技术,授予合法用户相应的属性及属性密钥。通过对属性的管理实现用户身份的匿名管理。用户能够在交互过程中生成用于认证的签名,签名验证通过则身份验证成功。这表示通过对属性签名的验证可以完成用户身份的验证。基于属性的签名技术通过属性对用户身份进行刻画,因此能在保护用户身份的隐私性。授予用户的属性密钥嵌入了用户的身份以及时间节点,因此能够实现防止合谋攻击以及密钥更新与滥用问题。
[0064]
(2)本发明的认证过程可以不依赖单一的权威机构,能够适用于区块链的分布式环境。尽管有属性机构在系统初始化时引入,但是属性机构并不参与签名的验证过程,并且签名验证的过程只需要获取属性机构相应的公钥即可,不需要与属性机构进行交互。
[0065]
(3)本发明支持用户与用户间的直接身份验证,能够实现身份的管理。通过对属性签名的验证,用户可以在不依赖中心机构的情况下,验证对方用户的身份,从而实现身份的管理与验证。
[0066]
(4)本发明中涉及的签名方法,相比较于以往的签名方法,需要更少的计算量,同时该方法中将身份验证过程不需要与第三方进行交互,避免了由于交互而产生的信息延迟,从而加快验证的处理速度。
附图说明
[0067]
图1是区块链网络系统的结构示意图。
[0068]
图2是种支持用户属性动态变化的匿名身份管理与验证方法流程图。
[0069]
图3是时间节点的生成过程示意图。
具体实施方式
[0070]
为使本发明的技术方案能更明显易懂,特举实施例并结合附图详细说明如下。
[0071]
本实施例提出一种适用于联盟链的分布式的支持可追踪的匿名认证方法,应用于区块链网络系统,如图1所示,该系统包含用户、属性机构以及区块链服务提供商。属性机构负责维护其属性集,生成属性密钥和公共密钥,并为用户生成属性签名密钥。不同的机构负责不同的属性。用户被赋予相应的属性,可能一个也可能多个。通过对这些属性的管理与验证实现对用户身份管理与验证。区块链服务提供商为用户与用户之间的交易提供一个公开平台。所有的交易信息都存储在区块链上;该方法如图2所示,具体包括以下步骤:
[0072]
s1.系统初始化:系统初始化包括系统参数的初始化和属性机构的初始化。
[0073]
步骤s1中,通过以下步骤生成公开参数和相应保密参数:
[0074]
系统参数的生成过程是:
[0075]
(1)给定一个安全参数k,运行双线性对生成算法,得到双线性群参数,双线性群参数包括p,g,g
t
,e,g1,其中p是群g的阶数,g1分别是群g的生成元,e是映射e:g1×
g1→
g
t

[0076]
(2)三个哈希函数h0:{0,1}
*

z
p
,h1:{0,1}
*

g,h:{0,1}
*

g。
[0077]
(3)全局参数是:gp=(g,g
t
,e,p,g1,h0,h1,h)。
[0078]
属性机构的参数生成过程是:
[0079]
(1)给定全局参数gp,每一个属性机构都为负责的每一个属性选择两个随机数作为属性私钥α,y∈z
p

[0080]
(2)属性机构为每一个属性计算相应的属性公钥:apk
(1)
=e(g1,g1)
α
,apk
(2)
=g
1y

[0081]
属性i的属性私钥是ask
i
={α
i
,y
i
},属性公钥是:
[0082]
s2.属性密钥的生成与更新:用户向相应的属性机构申请属性密钥。负责相应属性的属性机构为用户分发密钥。在生成属性密钥的过程中不仅考虑用户身份,也考虑时间节点,以应对之后的密钥更新过程。
[0083]
步骤s2中,属性签名密钥的生成与更新步骤执行如下:
[0084]
(1)属性机构收到用户gid的属性i的属性密钥请求,获取当前的时间t,为该用户生成t时刻关于属性i的属性密钥:
[0085]
(2)时刻t的生成过程是:取当前区块链中最后一个被确认的区块的时间戳时间作为当前时刻,如图3所示。
[0086]
(4)属性机构将用户请求的属性密钥发送给用户gid。
[0087]
s3.签名生成:用户生成访问信息m,使用属性密钥对访问信息m进行签名。用户将访问信息m以及签名广播发送。
[0088]
步骤s3中,签名生成通过以下步骤进行:
[0089]
(1)将访问策略定义为一个矩阵a,用户使用该矩阵、全局参数gp、身份信息gid、属性签名密钥以及访问信息m进行签名的生成。
[0090]
(2)用户随机选择随机数s∈z
p
、向量以及向量将s∈z
p
设置为向量的第一个元素,而向量的第一个元素设置为0。
[0091]
(3)令v
x
代表a
x
·
v,w
x
代表a
x
·
w,其中a
x
表示矩阵a的第x行。
[0092]
(4)用户为矩阵a的每一行a
x
都选择一个随机数r
x
∈z
p
,然后进行下列的计算:
[0093]
σ0=e(g1,g1)
sh(m)
[0094][0095][0096]
(5)针对访问信息m生成的签名是σ=(σ0,σ
1,x

2,x
)。
[0097]
s4.签名验证:对访问信息m和签名进行验证,如果验证通过,该请求被处理。
[0098]
步骤s4中,签名验证通过以下步骤进行:
[0099]
(1)对于访问策略构成的矩阵a,验证者计算一组c
x
满足等式:∑c
x
a
x
=(1,0,...,0)。
[0100]
(2)验证者使用哈希函数h,对消息进行哈希得到h(m),获取最新区块的时间戳,并计算h0(t)。
[0101]
(3)验证者进行下列计算:
[0102][0103]
(4)如果等式成立,那么验证通过,否则,验证不通过。
[0104]
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,本发明的保护范围以权利要求所述为准。
再多了解一些

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

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

相关文献