一种基于区块链的能源数据细粒度访问控制方法与流程

    专利2022-07-08  107


    本发明涉及一种基于区块链的能源数据细粒度访问控制方法,属于区块链技术领域。



    背景技术:

    能源互联网中,数据存储在不同企业和部门,跨区域、跨企业、跨部门实现数据共享可以更好地发挥数据资本的价值。现阶段能源公司内部以及能源公司之间数据共享还没有很完善,对于能源数据的共享存在着,能源数据易篡改、泄密、数据所有权争议问题,客观上形成了数据孤岛,导致数据价值的下降和软硬件资源的浪费。而区块链具备的去中心化、公开性、自治性、防篡改等特性,在运行方式、拓扑形态、安全防护等方面与能源互联网理念相适应,可以很好地与能源大数据形成互补,满足复杂的能源互联网安全可信的需求。

    基于属性的加密(abe)已经引起了更多的关注,因为它不仅可以保持隐私的机密性,而且还可以实现对实体的细粒度访问控制。



    技术实现要素:

    本发明要解决的技术问题是提供一种基于区块链的能源数据细粒度访问控制方法,用以解决上述问题。

    本发明的技术方案是:一种基于区块链的能源数据细粒度访问控制方法,利用sm4加密算法加密能源数据,存储在本地数据库,密文存储地址,对称解密密钥,能源数据摘要利用访问策略加密存储在自己所在域内的数据链以及监管链上,保障数据隐私性和可控性,用户域内数据访问的信息存储在本域的数据链内,用户跨域数据访问的信息存储在监管链,当能源数据发生争议时,可根据监管链上存储的数据访问信息对数据进行确权。

    step1:在注册阶段,授权机构ca初始化,生成全局参数gp,为系统用户进行注册生成唯一的用户编号uid,并产生公钥upk,为各属性机构aas进行注册生成全局唯一的属性机构编号aid,然后各属性机构进行初始化,根据全局参数gp生成自己的公私钥对(apk,ask);各属性机构aas根据自己管理的属性为数据用户du的各属性生成相应的属性私钥。使用多属性机构来管理数据用户的属性,为其生成属性私钥可缓解单属性机构风险过于集中以及计算压力过重的问题。

    step2:在数据加密上链阶段,数据拥有者do利用sm4对称加密算法对能源数据进行加密存储在本地数据库,然后利用哈希算法对密文数据进行哈希,然后将生成的哈希值、对称密钥以及存储地址,根据制定好的数据访问策略将其加密,将其作为交易上传到自己所在域内的数据链上以及监管链内。采用链上存储数据摘要链下存储原始数据,缓解了区块链的存储压力,利用sm4以及属性加密算法对数据进行加密,很好的保护了数据的隐私,同时对能源数据进行了细粒度的访问控制。

    step3:在数据访问阶段,数据用户发送数据访问请求信息,server端根据数据用户du发送的访问目标链标识判断数据用户是进行域内数据访问还是跨域数据访问,若目标链标识与数据用户du所在数据链标识一致则为域内数据访问,若不一致则为跨域数据访问。

    域内数据访问,数据用户du根据交易哈希、属性私钥进行域内数据访问,当数据用户du的属性集合满足加密能源数据的访问控制策略时,数据用户du可对返回的链上密文数据进行解密获得能源数据的存储地址、密文哈希以及解密的对称密钥,然后根据存储地址访问数据拥有者do的本地数据库,获得能源密文数据,然后利用对称解密密钥将能源密文数据进行解密获得明文数据;当数据用户du的属性集合不满足加密能源数据的访问控制策略时,则数据用户du不具备访问的权力。

    跨域数据访问:数据用户根据目标链标识、交易哈希、属性私钥进行跨链数据访问,server端根据数据用户du发送的目标链标识调用监管链相应的接口,从相应的数据链上获取交易数据,返回给数据用户du。当数据用户du的属性集合满足加密能源数据的访问控制策略时,可将链上获取的密文进行解密得到能源数据的存储地址、密文哈希以及解密的对称密钥,然后根据存储地址访问数据库,获得能源密文数据然后利用对称解密密钥将能源密文数据进行解密获得明文数据;当数据用户du的属性集合不满足加密能源数据的访问控制策略时,则数据访问者不具备访问的权力。

    进一步地,所述步骤s1中,各属性机构aa为数据用户du各属性生成属性私钥的方法为:

    当数据用户du发送用户编号uid、自身属性集合s请求私钥时,各属性机构aa验证其身份,uid正确,然后各属性机构aa根据自己管理的属性为数据用户du的各属性生成属性私钥sk以及转换密钥tk;若数据用户du的uid不正确,则返回数据用户du身份验证失败信息,让数据用户du发送正确的身份信息。

    进一步地,所述步骤s2中制定访问控制策略的方法为:

    采用lsss访问策略,数据拥有者do输入全局参数gp,明文m,设置的访问策略矩阵(a,ρ)以及相关属性机构aa的公钥apks,运行加密算法对明文m进行加密生成密文ct。

    进一步地,所述步骤s3中,du对链上数据进行属性解密的方法为:

    首先由外包服务器对密文ct进行预解密,输入全局参数gp,密文ct,以及数据用户du拥有的属性集合s相对应的转换密钥tk,当属性集合s中的属性满足密文中设置的访问策略矩阵(a,ρ)时,可以将密文ct解密为预解密密文ct’,当属性集合s中的属性不满足密文中设置的访问策略矩阵(a,ρ)时,则输出⊥。

    数据用户du获得预解密密文ct’,根据自己的属性私钥sk对密文进行解密获得能源数据密文哈希、存储地址、以及对称解密密钥,然后根据存储地址获得加密的能源数据以及数据哈希,将从数据库获得的数据哈希与链上获取的数据哈希进行对比,如果一致则能源数据传输过程中没有被篡改,利用对称解密密钥对其解密;如果不一致则能源数据传输过程中被篡改。重新访问do所在的本地数据库,获得能源数据密文。

    在du对链上数据进行属性解密之前,增加了预解密阶段,由外包服务器对密文ct进行预解密得到预解密密文ct’,数据用户du则只需对预解密密文ct’进行解密,这很好的缓解了数据用户du解密密文的计算压力。

    本发明的有益效果是:采用联盟链多链,数据链存储能源数据密文地址和本域内数据访问信息,监管链存储所有交叉域内的数据以及跨域访问的信息,可实现数据的追溯及确权,使用链上链下结合的方式缓解区块链的存储压力,利用多授权机构外包解密的密文策略属性加密,实现细粒度访问控制的同时,缓解数据用户解密压力。

    附图说明

    图1是本发明基于区块链的能源数据访问控制架构图。

    具体实施方式

    下面结合附图和具体实施方式,对本发明作进一步说明。

    实施例1:如图1所示,一种基于区块链的能源数据细粒度访问控制方法,具体步骤为:

    step1:在注册阶段,授权机构ca初始化,生成全局参数gp,为系统用户进行注册生成唯一的用户编号uid,并产生公钥upk,为各属性机构aas进行注册生成全局唯一的属性机构编号aid,然后各属性机构进行初始化,根据全局参数gp生成自己的公私钥对apk,ask;各属性机构aas根据自己管理的属性为数据用户du的各属性生成相应的属性私钥。

    当数据用户du发送用户编号uid、自身属性集合s请求私钥时,各属性机构aa验证其身份,uid正确,然后各属性机构aa根据自己管理的属性为数据用户du的各属性生成属性私钥sk以及转换密钥tk;若数据用户du的uid不正确,则返回数据用户du身份验证失败信息,让数据用户du发送正确的身份信息。

    step2:在数据加密上链阶段,数据拥有者do利用sm4对称加密算法对能源数据进行加密存储在本地数据库,然后利用哈希算法对密文数据进行哈希,然后将生成的哈希值、对称密钥以及存储地址,根据制定好的数据访问策略将其加密,将其作为交易上传到自己所在域内的数据链上以及监管链内。

    制定访问控制策略,加密能源数据的方法包括:采用lsss访问策略,数据拥有者do输入全局参数gp,明文m,设置的访问策略矩阵(a,ρ)以及相关属性机构aa的公钥apks,运行加密算法对明文m进行加密生成密文ct。

    对搭建多链架构的方法包括:将能源公司中各个部门作为一个节点,对所有节点按照能源公司进行划分,将不同能源公司的节点划分到不同的域内,处于不同域内的节点不能直接进行通信,各域内的节点分别搭建各自的数据链网络,能源公司内部各节点维护本公司的数据账本,其不能直接进行跨域访问其他域内的账本,每个能源公司都有属于自己的数据链。

    可以引入政府能源部门、社会权威部门等分别作为节点组成监管组织,存在于各个域的交叉域内,在交叉域内,监管组织内的各节点搭建监管链网络,监管链只由监管组织内的各节点维护,各能源公司的节点无权维护监管链。

    各数据链内主要存储本域内数据拥有者do上传的能源数据存储地址、对称解密密钥、密文数据的哈希值以及域内数据访问的信息,监管链内存储各交叉域内的数据以及数据用户进行跨域数据访问的信息。

    step3:在数据访问阶段,数据用户发送数据访问请求信息,server端根据数据用户du发送的访问目标链标识判断数据用户是进行域内数据访问还是跨域数据访问,若目标链标识与数据用户du所在数据链标识一致则为域内数据访问,若不一致则为跨域数据访问。

    数据访问分为域内数据访问和跨域数据访问。

    域内数据访问:数据用户du根据交易哈希、属性私钥进行域内数据访问,当数据用户du的属性集合满足加密能源数据的访问控制策略时,数据用户du可对返回的链上密文数据进行解密获得能源数据的存储地址、密文哈希以及解密的对称密钥,然后根据存储地址访问数据拥有者do的本地数据库,获得能源密文数据,然后利用对称解密密钥将能源密文数据进行解密获得明文数据;当数据用户du的属性集合不满足加密能源数据的访问控制策略时,则数据用户du不具备访问的权力。

    跨域数据访问:数据用户根据目标链标识、交易哈希、属性私钥进行跨链数据访问,server端根据数据用户du发送的目标链标识调用监管链相应的接口,从相应的数据链上获取交易数据,返回给数据用户du;当数据用户du的属性集合满足加密能源数据的访问控制策略时,可将链上获取的密文进行解密得到能源数据的存储地址、密文哈希以及解密的对称密钥,然后根据存储地址访问数据库,获得能源密文数据然后利用对称解密密钥将能源密文数据进行解密获得明文数据;当数据用户du的属性集合不满足加密能源数据的访问控制策略时,则数据访问者不具备访问的权力。

    数据用户du对链上数据进行属性解密的方法为:

    首先由外包服务器对密文ct进行预解密,输入全局参数gp,密文ct,以及数据用户du拥有的属性集合s相对应的转换密钥tk,当属性集合s中的属性满足密文中设置的访问策略矩阵(a,ρ)时,可以将密文ct解密为预解密密文ct’,当属性集合s中的属性不满足密文中设置的访问策略矩阵(a,ρ)时,则输出⊥;

    数据用户du获得预解密密文ct’,根据自己的属性私钥sk对密文进行解密获得能源数据密文哈希、存储地址、以及对称解密密钥,然后根据存储地址获得加密的能源数据以及数据哈希,将从数据库获得的数据哈希与链上获取的数据哈希进行对比,如果一致则能源数据传输过程中没有被篡改,利用对称解密密钥对其解密;如果不一致则能源数据传输过程中被篡改。重新访问do所在的本地数据库,获得能源数据密文。

    以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。


    技术特征:

    1.一种基于区块链的能源数据细粒度访问控制方法,其特征在于:

    step1:在注册阶段,授权机构ca初始化,生成全局参数gp,为系统用户进行注册生成唯一的用户编号uid,并产生公钥upk,为各属性机构aas进行注册生成全局唯一的属性机构编号aid,然后各属性机构进行初始化,根据全局参数gp生成自己的公私钥对apk,ask;各属性机构aas根据自己管理的属性为数据用户du的各属性生成相应的属性私钥;

    step2:在数据加密上链阶段,数据拥有者do利用sm4对称加密算法对能源数据进行加密存储在本地数据库,然后利用哈希算法对密文数据进行哈希,然后将生成的哈希值、对称密钥以及存储地址,根据制定好的数据访问策略将其加密,将其作为交易上传到自己所在域内的数据链上以及监管链内;

    step3:在数据访问阶段,数据用户发送数据访问请求信息,server端根据数据用户du发送的访问目标链标识判断数据用户是进行域内数据访问还是跨域数据访问,若目标链标识与数据用户du所在数据链标识一致则为域内数据访问,若不一致则为跨域数据访问。

    2.根据权利要求1所述的基于区块链的能源数据细粒度访问控制方法,其特征在于:数据访问分为域内数据访问和跨域数据访问;

    域内数据访问:数据用户du根据交易哈希、属性私钥进行域内数据访问,当数据用户du的属性集合满足加密能源数据的访问控制策略时,数据用户du可对返回的链上密文数据进行解密获得能源数据的存储地址、密文哈希以及解密的对称密钥,然后根据存储地址访问数据拥有者do的本地数据库,获得能源密文数据,然后利用对称解密密钥将能源密文数据进行解密获得明文数据;当数据用户du的属性集合不满足加密能源数据的访问控制策略时,则数据用户du不具备访问的权力;

    跨域数据访问:数据用户根据目标链标识、交易哈希、属性私钥进行跨链数据访问,server端根据数据用户du发送的目标链标识调用监管链相应的接口,从相应的数据链上获取交易数据,返回给数据用户du;当数据用户du的属性集合满足加密能源数据的访问控制策略时,可将链上获取的密文进行解密得到能源数据的存储地址、密文哈希以及解密的对称密钥,然后根据存储地址访问数据库,获得能源密文数据然后利用对称解密密钥将能源密文数据进行解密获得明文数据;当数据用户du的属性集合不满足加密能源数据的访问控制策略时,则数据访问者不具备访问的权力。

    3.根据权利要求1所述的基于区块链的能源数据细粒度访问控制方法,其特征在于所述step1中,各属性机构aas为数据用户du各属性生成属性私钥的方法为:

    当数据用户du发送用户编号uid、自身属性集合s请求私钥时,各属性机构aas验证其身份,uid正确,然后各属性机构aas根据自己管理的属性为数据用户du的各属性生成属性私钥sk以及转换密钥tk;若数据用户du的uid不正确,则返回数据用户du身份验证失败信息,让数据用户du发送正确的身份信息。

    4.根据权利要求1所述的基于区块链的能源数据细粒度访问控制方法,其特征在于所述step2中制定访问控制策略的方法为:

    采用lsss访问策略,数据拥有者do输入全局参数gp,明文m,设置的访问策略矩阵(a,ρ)以及相关属性机构aa的公钥apks,运行加密算法对明文m进行加密生成密文ct。

    5.根据权利要求1或2所述的基于区块链的能源数据细粒度访问控制方法,其特征在于所述step3中,数据用户du对链上数据进行属性解密的方法为:

    首先由外包服务器对密文ct进行预解密,输入全局参数gp,密文ct,以及数据用户du拥有的属性集合s相对应的转换密钥tk,当属性集合s中的属性满足密文中设置的访问策略矩阵(a,ρ)时,可以将密文ct解密为预解密密文ct’,当属性集合s中的属性不满足密文中设置的访问策略矩阵(a,ρ)时,则输出⊥;

    数据用户du获得预解密密文ct’,根据自己的属性私钥sk对密文进行解密获得能源数据密文哈希、存储地址、以及对称解密密钥,然后根据存储地址获得加密的能源数据以及数据哈希,将从数据库获得的数据哈希与链上获取的数据哈希进行对比,如果一致则能源数据传输过程中没有被篡改,利用对称解密密钥对其解密;如果不一致则能源数据传输过程中被篡改,重新访问do所在的本地数据库,获得能源数据密文。

    技术总结
    本发明涉及一种基于区块链的能源数据细粒度访问控制方法,属于区块链技术领域。本发明利用SM4加密算法加密能源数据,存储在本地数据库,密文存储地址,对称解密密钥,能源数据摘要利用访问策略加密存储在自己所在域内的数据链以及监管链上,保障数据隐私性和可控性,用户域内数据访问的信息存储在本域的数据链内,用户跨域数据访问的信息存储在监管链,当能源数据发生争议时,可根据监管链上存储的数据访问信息对数据进行确权。本发明通过引入多链架构以及密文策略属性基加密算法,使得数据拥有者能更好的保护以及分享数据,实现更细粒度的访问控制。

    技术研发人员:沈韬;葛纪红;刘英莉;朱艳;窦江玲;曾凯;陈喆
    受保护的技术使用者:昆明理工大学
    技术研发日:2020.11.11
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-20969.html

    最新回复(0)