一种基于区块链的策略隐藏型数据访问控制方法技术

技术编号:27751640 阅读:65 留言:0更新日期:2021-03-19 13:47
本发明专利技术公开了一种基于区块链的策略隐藏型数据访问控制方法,该方法利用区块链的去中心化和智能合约自动执行等特点,保证用户对数据的绝对控制权,同时针对区块链中访问控制策略被随意查看所带来的用户隐私数据泄露的风险,借鉴同态加密思想,利用双线性映射技术保证访问控制策略在隐藏的情况下可以被正确执行,防止了访问控制策略带来隐私泄露风险。其包括:(1)区块链平台执行群生成算法生成公共参数;(2)数据拥有者通过公共参数生成个人相关参数,同时构造访问控制策略树并发布至区块链中;(3)数据访问者利用公共参数及数据拥有者的相关参数生成自己的可用私钥;(4)区块链平台首先检测访问者私钥可用性,然后通对访问者私钥和数据拥有者访问控制树进行访问控制决策,如匹配成功通过,与云存储服务交互完成数据访问,反之返回拒绝信息。

【技术实现步骤摘要】
一种基于区块链的策略隐藏型数据访问控制方法
本专利技术属于云计算、访问控制
,具体涉及基于区块链的策略隐藏型数据访问控制方法,该方法利用区块链的去中心化、透明性及提出基于双线性映射的策略隐藏技术,既保证了用户对数据的绝对控制权,又可防止访问控制策略带来隐私泄露。
技术介绍
随着云计算技术的蓬勃发展和应用,用户数据外包存储,数据安全和隐私保护问题成为了人们关注的热点。访问控制作为保护数据安全及不被未授权者访问使用的重要技术,一直都是用户保护数据的重要技术,但随着用户数据的爆炸式增长以及云存储技术的发展,越来越多的用户选择把数据存放于云中,并把访问控制权限委托给第三方服务商,以减少保护数据所带来的成本开销。但是第三方服务商并不是完全可信的,存在非法执行访问控制策略、故意泄露用户隐私数据的风险,会给用户带来诸多不良后果。因此如何保证第三方服务商真实正确执行访问控制策略成为了云计算存储服务持续发展及广泛应用的关键。当前,由于区块链具有去中心化、透明性、不可篡改性等特点,一些研究工作引入其透明性、不可篡改性等特点用于减少对第三方服务商的信任依赖,确保访问控制日志不被随意篡改,同时利用智能合约及分布式协商机制,确保访问控制策略的自动正确执行,引入区块链技术实现访问控制,以解决云计算、大数据等场景下用户把数据存储于云中及把访问控制权委托给第三方服务商实施所带来的安全风险。另外,由于区块链的去中心化、透明性等特点导致存储于区块链中的访问控制策略可以被随意查看,访问控制策略是实现合法用户获取有效访问权限的一组约束条件,访问控制策略中往往包含身份属性等敏感信息,用户随意查看策略会造成泄露数据拥有者的隐私信息的风险。因此本专利技术提出基于区块链的策略安全型访问控制方法。
技术实现思路
针对第三发服务商不完全可信以及区块链中的访问控制策略给用户带来的隐私泄露的问题,本专利技术提出一种基于区块链的策略隐藏型数据访问控制方法,引入区块链技术及提出基于双线性映射的策略隐藏技术,保证用户对数据的绝对控制权,同时防止访问控制策略带来隐私泄露。本专利技术提出的一种基于区块链的策略隐藏型数据访问控制方法,实现该方法的系统包括数据拥有者、数据访问者、区块链平台和云存储服务四个部分,这四部分之间相互协作,共同完成对数据的安全访问控制。其中:①数据拥有者:是数据的拥有者,对数据拥有绝对的管理权限。其主要负责把数据上传至云服务存储记录下存储地址,同时制定相应的访问控制策略并转换成访问控制结构树,以及相关参数上传至区块链中,以供智能合约执行访问控制。②数据访问者:共享数据的访问者。其在区块链中根据数据拥有者发布的参数以及自身属性信息构造属于自己的私钥,并携带私钥发起访问请求。③区块链平台:用于记录访问控制。存储访问控制结构树,负责检查数据访问者发起访问携带的私钥是否合法可用,以及执行存储访问控制过程。④云存储服务:用于存储用户数据。本专利技术提出的方法具体流程如图1所示。具体流程如下,Step1:区块链平台运行群生成算法M(λ)获得(p,G,GT,e),同时对于区块链平台所有属性ATT中的每个属性值随机选择计算属性分量区块链平台发布公共参数为:Step2:数据拥有者首先随机选择ω,β,然后根据区块链平台发布的PK,计算:X=gβ,Y=e(g,g)ω,数据拥有者在区块链中发布用户个人公共参数:Step3:数据拥有者把数据加密存放至云服务器中并记录地址ADD。随机选择作为访问控制树T的共享值,执行秘密共享算法,使得T中的每个末端内部节点α得到一个q的共享值qα。然后,在α下为区块链平台中所有属性值计算密文分量值:①如果属性vi(1≤i≤n)未出现在节点α下的叶子节点所代表的表达式中,或者该属性和属性值都出现,则计算②如果属性vi(1≤i≤n)出现在节点α下的叶子节点所代表的表达式中,但是属性值没有出现在叶子节点中,则随机选择计算即如下:计算节点α下的密文组件则节点α下的密文为:计算C0=Xq=gβq,C1=MYq=Me(g,g)ωq,M是数据拥有者签名的数据拥有凭证。将访问控制树T去掉叶子节点形成访问控制树T',则最终数据拥有者密文为:C=(C0,C1,{Cα}α∈leaf(T),T')(5)数据拥有者选定一个访问者属性集范围ATTu,并在区块链中发布密文、ATTu以及数据地址:Dateu={C,ATTu,ADD}(6)Step4:数据访问者根据区块链平台发布的PK以及数据拥有者发布的PKu、Dateu构造属性集对应的私钥。对于属性集Atts中的每个属性表达式atti(1≤i≤k),其中k是属性集Atts的阶:从PK中选择对应的属性分量并对其进行签名,确保属性真实性;根据PKu计算访问者的私钥:Step5:访问者携带私钥向区块链中的数据发起访问请求。对于T'的末端内部节点α的秘密之为:其中k是访问者私钥的属性集阶。对于T'中的内部节点δ的秘密值计算如:其中num(δ)代表节点δ的子节点数量,k(δ)为节点δ的门限值。根据T'中末端节点的秘密值重构出T'的根节点秘密值,进而计算得到M,然后区块链进行验证共识,并把访问者的访问请求转至地址ADD云服务器,返回请求数据。在Step5中区块链对访问者进行访问控制需要分为五步:一是验证访问者私钥的合法性及正确性;二是计算并验证T'的末端节点α的秘密值;三是通过末端秘密值计算访问控制树根节点的秘密值;四根据根节点的秘密值计算数据拥有者签名的数据拥有凭证M;五是把访问请求转至服务器。计算并验证T'的末端节点α的秘密值:区块链根据访问者私钥中的Di(1≤i≤k)取出节点α下与之对应的属性值密文分量计算即有:如果访问者的私钥满足节点α下的所有属性表达式,则可计算出α正确的秘密值:检验秘密值是否正确:其中1表示群GT的单位元,当前私钥满足α下的访问控制策略,得到正确的秘密值,否则得出φα为随机值,即当前私钥不满足α下的访问控制策略。计算并验证完T'下所有的末端节点后,结合访问控制树判断是否可以重构T'的根节点秘密值。如果访问者的私钥属性集满足访问控制树T的访问控制策略,则可根据秘密重构算法得到根节点的秘密值Eroot=e(g,g)kq,计算M:区块链平台经过解密验证,如果访问者的访问私钥满足访问控制策略,则区块链平台和云存储服务交互,返回访问者请求数据,反之拒绝访问。访问控制策略隐藏:数据拥有者制定好访问控制结构树后,首先去掉叶子节点构成结构树T',如图2。数据拥有者会结合访问树T和T',为T'中的每一个叶子节计算区块链平台中所有属性的秘钥分量具体见公式2和3。数据拥有者把构造好的新的T'上传至区块链中,由于T'叶子节点包含区块链平台中每一个属性的密文分量,所以无法具体得知哪些属性是真实有用的策略属性。另外,区块链中的智能合约本文档来自技高网
...

【技术保护点】
1.一种基于区块链的策略隐藏型数据访问控制方法,其特征在于包括以下步骤:/n步骤1:区块链平台执行群生成算法生成公共参数;/n区块链平台执行群生成算法,生成相关公共参数,然后为区块链平台所有属性及其属性取值计算属性分量,并发布至区块链中;/n1)区块链平台在初始化的时候,由群算法生成公共参数,然后根据公共参数计算区块链平台中所有属性值的属性分量;/n2)发布公共参数以及属性分量至区块链中;/n步骤2:数据拥有者生成访问控制树;/n数据拥有者根据区块链平台发布的公共参数生成个人相关参数,同时制定访问控制策略,并构造成访问控制树发布至区块链平台中;/n1)根据把数据加密存储至云服务器中;/n2)根据所述步骤1中区块链平台发布的公参数,生成自己的用户参数;/n3)根据区块链平台公共参数、用户参数及访问控制策略构造访问控制策略树;/n4)数据拥有者选定一个私钥属性集范围;/n5)发布自己的用户参数、访问控制策略树及私钥属性集范围至区块链;/n步骤3:数据访问者构造私钥并发起访问/n数据访问者根据数据拥有者发布的相关参数,及自身属性构造个人私钥,并对私钥进行签名;/n1)数据访问者根据所述步骤1中区块链平台发布的公共参数及所述步骤2中数据拥有者发布的用户参数构造个人私钥;/n2)数据访问者为自己构造的私钥进行签名;/n3)数据访问者携带私钥向区块链发起访问请求;/n步骤4:区块链平台访问控制判决;/n1)区块链平台对访问者的私钥签名进行合法性正确性验证;/n2)私钥验证通过后,通过私钥计算访问控制策略树末端节点的秘密值;/n3)通过访问控制策略树的各节点秘密值,重构根节点秘密值;/n4)区块链平台验证重构的秘密值,如果正确,则转至云服务器,否则转至6);/n5)云服务器返回数据至访问者客户端;/n6)直接拒绝访问请求。/n...

【技术特征摘要】
1.一种基于区块链的策略隐藏型数据访问控制方法,其特征在于包括以下步骤:
步骤1:区块链平台执行群生成算法生成公共参数;
区块链平台执行群生成算法,生成相关公共参数,然后为区块链平台所有属性及其属性取值计算属性分量,并发布至区块链中;
1)区块链平台在初始化的时候,由群算法生成公共参数,然后根据公共参数计算区块链平台中所有属性值的属性分量;
2)发布公共参数以及属性分量至区块链中;
步骤2:数据拥有者生成访问控制树;
数据拥有者根据区块链平台发布的公共参数生成个人相关参数,同时制定访问控制策略,并构造成访问控制树发布至区块链平台中;
1)根据把数据加密存储至云服务器中;
2)根据所述步骤1中区块链平台发布的公参数,生成自己的用户参数;
3)根据区块链平台公共参数、用户参数及访问控制策略构造访问控制策略树;
4)数据拥有者选定一个私钥属性集范围;
5)发布自己的用户参数、访问控制策略树及私钥属性集范围至区块链;
步骤3:数据访问者构造私钥并发起访问
数据访问者根据数据拥有者发布的相关参数,及自身属性构造个人私钥,并对私钥进行签名;
1)数据访问者根据所述步骤1中区块链平台发布的公共参数及所述步骤2中数据拥有者发布的用户参数构造个人私钥;
2)数据访问者为自己构造的私钥进行签名;
3)数据访问者携带私钥向区块链发起访问请求;
步骤4:区块链平台访问控制判决;
1)区块链平台对访问者的私钥签名进行合法性正确性验证;
2)私钥验证通过后,通过私钥计算访问控制策略树末端节点的秘密值;
3)通过访问控制策略树的各节点秘密值,重构根节点秘密值;
4)区块链平台验证重构的秘密值,如果正确,则转至云服务器,否则转至6);
5)云服务器返回数据至访问者客户端;
6)直接拒绝访问请求。

<...

【专利技术属性】
技术研发人员:林莉储振兴檀文婷解晓宇
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京;11

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

1