一种基于区块链的共享数据库的隐私数据范围查询方法技术

技术编号:32857015 阅读:13 留言:0更新日期:2022-03-30 19:29
本发明专利技术提供了一种面向基于区块链的共享数据库的隐私数据范围查询方法。解决了基于区块链的共享数据库中加密数据范围查询的难题,同时,本发明专利技术支持多数据库系统使用不同密钥加密,在不共享密钥的情况下支持密文域的范围匹配。本发明专利技术提供的RngMatch算法,首先对数据分块,并把块和预比较结果加密建立索引并随机排序,在匹配时,通过双线性映射加密元语判断两个块是否相等,从而把范围匹配问题转换为了模式的匹配,保护了数据大小关系不被泄露。此外,算法还建立了子索引进一步提高了算法的执行效率,因算法具有高效的执行效率,因此算法支持部署到智能合约,通过智能合约自动执行范围匹配,因智能合约具有透明性,因此数据匹配结果的可靠性得到了保障。果的可靠性得到了保障。果的可靠性得到了保障。

【技术实现步骤摘要】
一种基于区块链的共享数据库的隐私数据范围查询方法


[0001]本专利技术涉及共享数据库中隐私数据范围查询的
,尤其是涉及一种基于区块链的共享数据库中隐私数据范围查询方法。

技术介绍

[0002]目前,区块链技术的快速发展带动了去中心化应用的快速发展。其中,基于区块链的共享数据库,因其实现了安全的数据共享而吸引了学术界和产业界的大量关注,他们利用区块链为不同实体建立可信的平台,以共享数据和计算资源,其抗篡改能力和强大的容错能力得到了广泛的认可。尽管共享数据库将数据进行了聚合,方便用户一次查询所有数据,但数据共享引起的隐私数据泄露问题引起了用户的关注。如果共享数据库系统包含用户敏感信息,例如用户的年龄、住址、医疗档案等信息,将这些数据库数据直接共享到透明区块链平台上,不可避免地会暴露出用户隐私信息。因此,如果不能解决用户隐私数据泄露问题,基于区块链的共享数据库可共享的数据范围将受到很大限制。
[0003]为了解决基于区块链的共享数据库隐私泄露的问题,目前已有一些基于区块链的数据库加密搜索的研究。然而,现有的隐私保护方案大部分只关注加密的关键字搜索,而对加密数据范围查询的研究非常少。支持加密数据范围搜索的解决方案有保序加密查询方案和隐序加密查询方案,虽然两种方案都可以用于密文域的范围查询,但是这两种加密算法都需要使用同一个密钥加密,因此这两种解决方案只适用于单用户场景,而协同数据面向的是多用户,所以,这两种解决方案并不能应用于共享数据中。此外,保序加密搜索方案会泄露数据的大小顺序和数据库列间相关性。攻击者可以利用这些泄漏和有关数据分布的背景知识推断明文值。另一方面,智能合约也有一些局限性,现有智能合约只能支持有限的加密工具,如双线性对和哈希函数。计算复杂的加密技术不适合部署到智能合约上实现加密范围查询。

技术实现思路

[0004]本专利技术的目的在于提供一种基于区块链的共享数据库中隐私数据范围查询方法,以解决现有技术中存在的不支持多用户和密文域中不支持范围查询的技术问题。
[0005]为解决上述技术问题,本专利技术提供的一种基于区块链的共享数据库中隐私数据范围查询方法,包括在共享数据库中进行隐私数据范围查询方法和隐私数据更新方法。
[0006]采用上述技术方案,本专利技术具有如下有益效果:
[0007]本专利技术提供的基于区块链的共享数据库中隐私数据范围查询方法,支持在密文域中进行范围查询,并且攻击者无法得知数据的大小关系,保证了隐私数据的安全性,用户可以放心的将自己的隐私数据存储到共享数据库中,而不会泄露。此方法具有高效的执行效率,可以由智能合约自动执行。
附图说明
[0008]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0009]图1为本专利技术实施例提供的系统架构概览图;
[0010]图2为本专利技术实施例提供的密文域范围搜索流程图;
[0011]图3为本专利技术实施例提供的案列解释图;
具体实施方式
[0012]下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0013]下面结合具体的实施方式对本专利技术做进一步的解释说明。
[0014]如图1所示,本实施例提供的系统架构概览图。从图中可以看到系统由3个实体组成,他们分别是用户,多数据库系统,区块链平台。为了来自不同平台的数据库可以相互共享数据,数据所有者需要把加密索引部署到区块链上。用户将自己的查询条件加密并传送到区块链上,收到用户的查询请求后,智能合约执行范围匹配,从加密的索引中找出与查询条件匹配的记录,并将搜索结果返回给用户。
[0015]本专利技术使用v表示数据库值,使用v

表示v的密文,使用v
*
表示用户的查询值。本专利技术解决的问题可以描述为:智能合约高效地从来自不同数据库的密文v

组成的数据集中找出所有符合用户搜索条件v
*
的记录,并安全地返回给用户。此过程包含三个步骤:
[0016]S1.数据库初始化:数据拥有者将数据DB作为输入,将得到(EDB, PK,SK),其中EDB是加密的范围索引,{PK,SK}是公钥和私钥对。
[0017]S2.查询:用户使用公钥PK对查询值v
*
和范围谓词s∈{>,<}进行加密,将加密结果发送给智能合约,智能合约从数据库加密索引 EDB中查询出所有与查询范围相匹配的结果。
[0018]其中对数据库记录的加密可以使用传统的对称密钥加密,不属于本专利技术范畴,不进行具体描述。
[0019]为了支持在基于区块链的共享数据库中进行范围查询而不泄露用户隐私,需要解决的问题是如何安全的比较两个加密的数据值而不泄露他们的大小关系。保序和隐序加密都不适合,因为不同的数据索引是被不同的数据库拥有者使用自己的私钥加密的,而不同的数据库拥有者的私钥是各不相同的。在数据拥有者密钥不同的情况下,智能合约很难对保序加密或者隐序加密后的数据执行匹配运算,并且这两种加密算法会泄露密文的大小关系。
[0020]为了解决上述问题,我们设计了基于bit块的加密算法,可以让智能合约比较不同数据库拥有者加密的数据库密文。我们的核心思想是把数据分割成等长的bit块,用公钥对每个bit块和预知的范围比较结果加密。因此,对密文大小的比较转换成了对等长bit 块和范围谓词的模式匹配。在范围比较后,智能合约只知道查询条件和数据库加密索引匹配成
功了,但是不知道他们的大小关系。
[0021]在执行数据查询时,数据库拥有者,首先把数据库字段C对应的数据值v进行分割,分割成长度为d个bit的b个块,第i个 bit块使用v
|i
表示,对v
|i
进行如下运算:
[0022][0023]σ是随机数,γ1是数据拥有者的私钥,β是密钥管理机构分发的安全参数,是块v
|i
的前缀,H是哈希函数,C是字段的属性。j∈ {0,

,2
d

1}是一个包含d个bit的块的所有可能的值,s= cmp(v
|i
,j)是对应的第i个块v
|i
和j的比较结果,可能是{>,<,=}。例如:d为2,v
|i
=“01”,“s||j”将会包含三种可能,即{“> ||00”,“<||10”,“<||11”}。因为加入了C,所以只有搜索字段C 的时候,才会匹配成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向基于区块链的共享数据库的隐私数据范围查询的方法,其特征在于每个数据库采用不同密钥进行加密,在不共享密钥的情况下,用户可以对所有共享的加密数据进行范围查询,包含共享数据库索引建立和共享加密数据范围查询两个模块。2.根据权利要求1所述的共享数据库索引建立模块,其特征在于,包含以下步骤:1)每个数据库拥有者和用户从密钥管理机构获取安全参数{β,b,d}。除此之外,他们还向智能合约交一些保证金来保障系统的激励制度。2)数据库拥有者将字段C的值v和对应的编号从数据库DB(v)={id1,id2,...,id
n
}中抽取出来,其中{id1,id2,...,id
n
}为数据库行编号。3)对于每个值v,数据拥有者使用Enclndex算法生成索引的密文ct
I
。同时,通过标准加密算法把多个行ID打包成一个密文EID
v
,即EID
v
=Enc(k,id1||

||id
n
)4)数据拥有者把(ct1,EID
v
)作为加密索引部署到智能合约上。3.根据权利要求1所述的共享加密数据范围查询模块,其特征在于,包含以下步骤:1)当用户提交了范围查询请求后,系统把查询值v
*
分割成b个d

bit大小的块其中i∈{1,2,...,b}。2)对每个块客户通过以下两个公式为每个bit块生成tk
i
={tk1,tk2};};3)用户使用PRPπ算法将{tk
π(1)
,tk
π(2)
,...,tk
π(b)
}进行重新排列。4)用户将查询请求tk
q
...

【专利技术属性】
技术研发人员:郭宇奚雨新李春晓王胜灵
申请(专利权)人:北京师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1