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