【技术实现步骤摘要】
一种混合存储区块链的细粒度身份验证方法
[0001]本专利技术涉及区块链技术和云计算,具体涉及混合存储区块链的细粒度范围查询验证方法。
技术介绍
[0002]由于分布式终端的大规模应用,产生了海量的数据流,越来越多的用户选择将数据外包给云服务提供商,然而一旦将数据外包给云,用户就丧失了对数据的物理控制权。云服务提供商是不完全可信的,由于服务器故障、容易受到外部攻击等原因,对存储数据的安全性构成威胁,因此对外包数据的查询验证就变得十分重要。
[0003]区块链是一个仅追加的分布式账本,建立在点对点网络之上,区块链的每个节点都保存完整的交易记录。区块链具有不可篡改和可信的特性,因此成为了物联网、数据外包等去中心化应用中安全数据存储的一种有效解决方案。然而,随着终端设备(如物联网设备)产生的数据量不断增加,将原始数据直接存储在区块链上缺乏可拓展性,并且区块链上存储成本高昂,因此结合区块链和云服务器的链上链下混合存储区块链(hybrid
‑
storage blockchain,HSB)成为了一种较为理想的解决方案。混合存储区块链兼具云存储成本低和区块链高度可信性的特点,完美解决了云存储不可信和区块链存储开销大的难题。典型的HSB架构如图1所示,其中数据拥有者将大量的键值数据流外包给链下的云服务提供商(SP),区块链中仅存储元数据(如加密哈希)。由于SP是不完全可信的,现有解决方案通常在链上元数据中加入认证数据结构(authenticated data structure,ADS),用户可以根据ADS ...
【技术保护点】
【技术特征摘要】
1.一种混合存储区块链的细粒度身份验证方法,其特征在于,原始数据存储在云端,可验证数据结构ADS存储在区块链中,区块链存储的ADS和云端返回的验证信息VO用于验证查询结果的完整性,并在完整性验证失败时,对错误数据进行定位筛查;方法包括:步骤110:ADS生成;包括步骤111
‑
步骤114;步骤111:数据拥有者构造排序对象集RO
s
;对于任意一个关键词k
s
,根据其对应的对象集OBJ
s
,构造排序对象集RO
s
={(k
s
,a
r
,t
r
,r)},r∈[1,d
s
],其中,(k
s
,a
r
,t
r
,r)表示k
s
第r个版本的对象,值为a
r
,时间戳为t
r
,RO
s
按照时间戳递增的顺序排列,版本号r按照1,2,3,...,j,...,d
s
的顺序递增,d
s
为OBJ
s
的大小;步骤112:数据拥有者根据RO
s
的规模构造u
s
×
u
s
的验证矩阵M
s
,u
s
为验证矩阵M
s
的尺寸;步骤113:数据拥有者执行摘要生成算法GenAcc(M
s
)
→
θ,其中,摘要集θ={θ1,θ2},θ1、θ2分别代表行摘要和列摘要的集合;对于每一行数据,执行GenAcc(M
s
[i][*])
→
θ
1i
,将M
s
第i行的数据基于RSA累加器进行累积,生成摘要存入θ1的第i个元素θ
1i
,对于每一列数据,执行GenAcc(M
s
[*][j])
→
θ
2j
,将M
s
第j列的数据基于RSA累加器进行累积,生成摘要存入θ2的第j个元素θ
2j
,i,j∈[1,u
s
],*表示该行或者该列的所有数据;步骤114:数据拥有者将RO
s
上传到云服务器,将摘要集θ上传到区块链;步骤120:数据查询;用户向云服务器发起查询请求Q=(k
s
,[t
l
,t
u
]),查询起始时间t
l
至结束时间t
u
之间的数据,云服务器检索得到符合查询请求的搜索结果SR=(k
s
,OBJ
s
)和边界结果BR,生成查询结果R=(SR,BR);步骤130:VO构造;云服务器执行验证生成算法GenProof(R,M
s
)
→
VO生成验证对象VO,并发送R和VO给用户;其中,验证生成算法GenProof(R,M
s
)
→
VO包括:对于每一行数据,执行GenProof(L
i
,M
s
[i][*])
→
Φ
Li
,即基于RSA累加器生成第i行的验证证明Φ
Li
,其中L
i
=R∩M
s
[i][*],为矩阵M
s
第i行与R共同包含的数据,对于每一列数据,执行GenProof(C
j
,M
s
[*][j])
→
Φ
Cj
,即基于RSA累加器生成第j行的验证证明Φ
Cj
,其中C
j
=R∩M
s
[*][j],为矩阵M
s
第j列与R共同包含的数据,VO={Φ
L
,Φ
C
},Φ
L
为行数据的验证证明集,Φ
C
为列数据的验证证明集;步骤140:用户验证;用户收到云服务器返回的R和VO,利用从区块链中取回的ADS,执行结果验证算法VerProof(R,VO,θ)
→
(0,1)验证结果的完整性和正确性,其中包括:对于每一行数据,执行VerProof(L
i
,Φ
Li
,θ
1i
)
→
(0,1),即验证第i行数据是否正确,如果验证为1,该行数据验证正确;如果验证为0,该行数据验证错误,该行存在错误数据;当所有行验证均为1,则证明R的完整性和正确性,否则,执行步骤150;步骤150,错误定位;对于每一列数据,执行VerProof(C
j
,Φ
Li
,θ
2j
)
→
(0,1),即验证第j列数据是否正确,如果验证为1,该列数据验证正确;如果验证为0,该列数据验证错误,该列存在错误数据,当VerProof(L
i
,Φ
Li
,θ
1i
)
→
0且VerProof(C
j
,Φ
Li
,θ
2j
)
→
0,则此时行列交叉的点(i,j)为错误数据所在的位置,将该位置存入错误位置集合EL。2.根据权利要求1所述的混合存储区块链的细粒度身份验证方法,其特征在于,步骤112还包括:每个k
s
的数据流和u
s
×
u
s
的验证矩阵M
s
相关联,
3.根据权利要求2所述的混合存储区块链的细粒度身份验证方法,其特征在于,步骤113还包括:摘要生成算法GenAcc(X)
→
acc(X)包括:给定一个集合X={x1,
…
,x
n
},x
i
∈{0,1}时,该算法产生的累加值为g是循环群的产生器,P(H(x
i
))表示与元素x
i
对应的质数,通过双通用哈希函数H来实现。4.根据权利要求3所述的混合存储区块链的细粒度身份验证方法,其特征在于,方法还包括:验证生成算法GenProof(Y,X)
→
Φ包括:计算子集Y的证明结果验证算法VerProof(Y,Φ,acc(X))
→
(0,1)包括:当时,输出1,否则输出0。5.一种基于gas效率结构的混合存储区块链的细粒度身份验证方法,其特征在于,原始数据存储在云端,可验证数据结构ADS存储在区块链中,区块链存储的ADS和云端返回...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。