一种基于属性布隆过滤器的快速策略检索方法技术

技术编号:32880580 阅读:41 留言:0更新日期:2022-04-02 12:14
本发明专利技术公开了一种基于属性布隆过滤器的快速策略检索方法,数据所有者生成平台运行所需参数,利用主体属性生成数据使用者的可用私钥;数据拥有者制定访问控制策略,并将策略转化为线性秘密共享矩阵,实现策略的构造并发布至区块链中。数据所有者在知道要加密的消息之前,根据公共参数进行大量预计算。当要加密的消息已知时快速生成密文。策略检索时,利用属性布隆过滤器重新构造出属性匹配函数,利用哈希函数快速定位主体属性的具体位置,如果能成功构造出属性映射函数,证明数据使用者的属性满足数据拥有者制定的访问策略,否则表明无权限访问;最终解密得到客体资源的地址,通过多客户端分散链上检索的压力,提高系统检索时间,完成数据共享。完成数据共享。完成数据共享。

【技术实现步骤摘要】
一种基于属性布隆过滤器的快速策略检索方法


[0001]本专利技术属于大数据、访问控制
,具体涉及区块链中密文访问控制策略的检索问题,该方法利用区块链的透明性提出基于属性布隆过滤器的密文策略检索技术,即实现了策略的快速定位,也保证了策略的检索速度,满足数据安全共享的要求。

技术介绍

[0002]随着大数据的快速发展和应用,用户数据的安全共享是亟需解决的问题。访问控制是实现数据安全和隐私保护的重要支撑技术之一。由于“中心化”的传统访问控制技术存在策略执行不透明、动态数据管理不灵活、资源拥有者自主性差、易发生单点故障带来性能瓶颈等问题,使其难以适用当前处理海量、动态和分布式数据的新型计算环境。鉴于区块链具有去中心化、透明性、不可篡改等优点,当前基于区块链的去中心化访问控制技术日益得到关注。现有两类基于区块链的访问控制方法,一类是利用区块链不可篡改的特性将其作为可信实体与现有访问控制模型结合,另一类是基于智能合约的访问控制机制,设计基于交易和智能合约的访问控制模型。
[0003]然而,当前基于区块链去中心化的访问控制研究提出将访问控制策略加密存储到区块链上。当策略中的主客体属性被加密后,未授权用户和授权用户都无法知道访问策略中涉及的主客体属性,这使得解密成为一个具有挑战性的问题。此外,当链上访问控制策略存储过多时,策略的检索速度必然会成为整个系统的瓶颈,如何快速准确检索出相应策略是目前亟需解决的另一个重要问题。为此,本专利技术提出一种基于属性布隆过滤器的快速策略检索方法,旨在实现对区块链上的密文策略的高效检索,在保证正确授权的同时,也不影响用户的使用体验。

技术实现思路

[0004]针对区块链上的密文访问控制策略的检索问题,本专利技术基于线性秘密共享矩阵构造属性布隆过滤器,实现了对加密访问控制的检索,完成权限的安全鉴定。
[0005]本专利技术提出的一种基于属性布隆过滤器的策略检索方法,实现该方法涉及数据拥有者、数据访问者、区块链平台和云存储服务四个实体,这四个实体之间相互协作,共同完成对数据的安全访问控制。其中:
[0006]①
数据拥有者:是数据的拥有者,拥有对数据绝对的管理权限。其重要责任是把客体资源上传到云服务器存储,同时制定相应的访问控制策略,通过区块链客户端发起交易申请,上传到区块链中。
[0007]②
数据访问者:客体资源的访问者。当数据所有者的属性满足数据所有者指定的访问控制策略时,可以获得客体资源的地址,否则无法访问。
[0008]③
区块链平台:区块链平台是整个架构模型的基础设施,主要包括数据层,存储相应的策略信息、智能合约、主体属性信息等。
[0009]④
云存储服务:用于存储客体资源,并和区块链、用户交互以完成数据的访问共
享。
[0010]本专利技术提出的方法具体流程如图1所示。具体流程如下,
[0011]Step1:客体上传阶段
[0012]首先假设云数据服务器是可信的,数据所有者将数据存储到云端数据库服务器上,返回所存储数据的地址(address)和摘要值(hash)。其中摘要值主要用于对云端数据的完整性校验,数据地址将作为客体资源,通过访问控制策略来控制不同主体对该地址的访问。
[0013]Step2策略生成阶段,数据所有者制定访问控制策略,将访问控制策略存储到策略管理合约管理的策略库中,具体流程如图2所示。
[0014]①
将属性相关的逻辑表达式转化为线性秘密共享矩阵(LSSS)。得到(M, ρ)。此时策略可以表示为:Policy1:result(R,action,pid)

Θ{(M, ρ)}signature_owner,其中signature_owner为数据所有者的签名,pid表示策略ID,只有当Θ{(M,ρ)}为真时,请求方能被允许对资源R进行action操作;其中ρ是属性匹配函数,会泄露属性信息。
[0015]②
去掉属性匹配函数ρ,引入属性布隆过滤器,实现策略加密。
[0016]setup(1
λ
)

(PK,MSK)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0017]初始化算法输入安全参数λ,输出公钥PK和主密钥MSK。初始化算法选择两个阶为素数p的循环群G0与G1,g是G0的生成元。任意选取h,k,q∈G0,α, β∈Zp,计算公钥和主密钥。
[0018]PK={G0,p,g
α
,g
β
,h,k,e(g,g)
α
}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0019]MSK={α}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0020]③
数据所有者针对不同数据使用者的属性计算密钥SK,该算法输入公钥 PK、主密钥MSK和数据使用者的属性集合,输出密钥SK。得到SK后,使用数据使用者以太坊钱包中的公钥对SK进行加密,得到SK


[0021]KeyGen(PK,MSK,S)

SK
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0022]④
数据所有者通过访问策略(M,ρ),公钥PK对客体资源的地址address 进行加密,得到密文CT。
[0023]Enc(PK,address,(M,ρ))

CT
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0024]在加密阶段,数据拥有者根据主体的属性信息进行预加密计算,然后在知道要加密的消息时,数据拥有者加速生成密文,然后构造ABF。当加密信息未知时,数据拥有者根据指定的访问控制结构对加密信息进行线性秘密共享,得到共享向量v1,v2,

vn,当需要加密时,输入密钥,生成密文。
[0025]⑤
数据所有者通过M,ρ构造属性布隆过滤器,输入访问控制矩阵(M, ρ),访问控制策略相关的属性与访问矩阵M对应的行号相关联,对于属性元素集合Se={i||ate}i∈[1,
……
l],M的第i行和ρ之间的关系是ρ(i)=ate,然后通过位字符串的左侧填零,将行号和属性扩展到最大位长度,最后通过调用ABF 算法构造ABF。
[0026]ABFBuilder(M,ρ)

ABF
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0027]此时策略表示为:Policy1:result(R,action,pid)

[0028]Θ{(CT,ABF,PK,SK

)}signature_owner。
[0029]最终将这个策略放进策略库中进行保存。然后,对于主体属性集合Attr,选择属性
布隆过滤器ABF生成二进制向量V
ABF
(本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于属性布隆过滤器的快速策略检索方法,其特征在于,包括以下步骤:步骤1:准备阶段;步骤1.1:生成策略加解密所需的参数;1)数据所有者根据安全参数生成公钥PK和主密钥MSK;2)数据所有者针对不同的用户属性生成密钥SK;步骤1.2:将数据拥有者指定的访问控制策略统一转化为线性秘密共享矩阵;步骤2:策略生成阶段;数据所有者根据线性秘密共享矩阵和属性布隆过滤器构造访问控制策略;步骤2.1:生成客体资源地址的密文;1)数据拥有者输入客体资源的地址address;2)数据拥有者输入线性秘密共享矩阵;3)数据拥有者添加策略加密所需的公钥PK,得到客体资源地址的密文CT;步骤2.2:构造属性布隆过滤器;1)数据拥有者输入构造好的线性秘密共享矩阵,使用k个哈希函数将主体属性映射到线性秘密共享矩阵中;2)数据拥有者将新生成的策略添加到策略库;3)在知道要加密的消息之前,用户根据公共参数进行大量预计算;当要加密的消息已知时,快速生成密文;步骤3:策略检索阶段;步骤3.1:构造访问控制请求AAR;1)PEP接收主体的原始请求;2)PIP合约查询区块链中的属性库,验证主体属性;3)PEP根据主体属性构建AAR,发送请求判决;步骤3.2:主体权限鉴别;1)PAP合约根据主体属性查询定位策略库中的策略;2)PAP合约重新构造属性映射函数ρ

;3)如果2)构造成功,返回三元组(ρ

,CT,SK

),否则返回null表示构造失败;步骤3.3:客体资源地址解密;1)使用以太坊钱包的私钥解密SK

,得到SK;2)通过SK,ρ

解密客体资源地址address;3)通过地址address获取客体资源。2.根据权利要求1所述的一种基于属性布隆过滤器的快速策略检索方法,其特征在于,首先假设云数据服务器是可信的,数据所有者将数据存储到云端数据库服务器上,返回所存储数据的地址和摘要值;摘要值用于对云端数据的完整性校验,数据地址将作为客体资源,通过访问控制策略来控制不同主体对该地址的访问。3.根据权利要求1所述的一种基于属性布隆过滤器的快速策略检索方法,其特征在于,数据所有者制定访问控制策略,将访问控制策略存储到策略管理合约管理的策略库中:

将属性相关的逻辑表达式转化为线性秘密共享矩阵LSSS;得到(M,ρ);此时策略可以表示为:Policy1:result(R,action,pid)

Θ{(M,ρ)}signature_owner,其中signature_
owner为数据所有者的签名,pid表示策略ID,只有当Θ{(M,ρ)}为真时,请求方能被允许对资源R进行action操作;其中ρ是属性匹配函数,会泄露属性信息;

去掉属性匹配函数ρ,引入属性布隆过滤器,实现策略加密;setup(1
λ
)

(PK,MSK)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)初始化算法输入安全参数λ,输出公钥PK和主密钥MSK;初始化算法选择两个阶为素数p的循环群G0与G1,g是G0的生成元;任意选取h,k,q∈G0,α,β∈Zp,计算公钥和主密钥;PK={G0,p,g
α
,g
β
,h,k,e(g,g)
α
}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)MSK={α}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)

数据所有者针对不同数据使用者的属性计算密钥SK,该算法输入公钥PK、主密钥MSK和数据使用者的属性集合,输出密钥SK;得到SK后,使用数据使用者以太坊钱包中的公钥对SK进行加密,得到SK

;KeyGen(PK,MSK,S)

SK
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)

数据所有者通过访问策略(M,ρ),公钥PK对客体资源的地址address进行加密,得到密文CT;Enc(PK,address,(M,ρ))

CT
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)在加密阶段,数据拥有者根据主体的属性信息进行预加密计算,然后在知道要加密的消息时,数据拥有者加速生成密文,然后构造ABF;当加密信息未知时,数据拥有者根据指定的访问控制结构对加密信息进行线性秘密共享,得到共享向量v1,v2,

vn,当需要加密时,输入密钥,生成密文;

数据所有者通过M,ρ构造属性布隆过滤器,输入访问控制矩阵(M,ρ),访问控制策略相关的属性与访问矩阵M对应的行号相关联;对于属性元素集合Se...

【专利技术属性】
技术研发人员:林莉郭馥宾
申请(专利权)人:北京工业大学
类型:发明
国别省市:

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

1