基于区块链的能源数据访问控制方法

2021-09-18 06:22葛纪红
计算机应用 2021年9期
关键词:私钥密文解密

葛纪红,沈 韬

(昆明理工大学信息工程与自动化学院,昆明 650500)

(*通信作者电子邮箱shentao@kust.edu.cn)

0 引言

以能源互联网为核心的第三次工业革命在全世界范围内逐渐发展,在以可再生能源、分布式发电等为代表的新能源技术以及云计算、大数据、人工智能、区块链等先进技术的推动下,能源互联网有了进一步的发展[1]。能源互联网中的各个节点都是一个数据源,它们在能源产生、能源存储、能源转移或能源消耗过程中都会产生大量数据[2-3]。能源数据的共享对于能源互联网的发展、能源信息的进一步利用有很好的推动作用。能源互联网中,数据存储在不同企业和部门中,跨区域、跨企业、跨部门实现数据共享可以更好地发挥数据资本的价值。现阶段能源公司内部以及能源公司之间的数据共享是一个难题,面临数据泄露风险高、数据不可信以及数据控制权易丢失等诸多问题。而区块链具备的可追溯、高可信、防篡改等特性,在运行方式、拓扑形态、安全防护等方面与能源互联网理念相适应,可以很好地与能源大数据形成互补,满足复杂的能源互联网安全可信的需求[4]。

大数据技术的发展使得海量数据的潜在价值日益凸显。电力行业作为国家重要的能源行业,电网企业在长期经营过程中积累了大量的数据。这些数据不仅可以助力电网企业自身提升服务质量,创造更大收益,更可以作为经济社会运行状况的重要反映。然而,当前电网企业正面临着严峻的“数据孤岛”问题。数据作为电力公司的资产,各大电力公司不同业务部门不希望自己内部的数据被其他部门所访问,更不希望自己的数据被同行业不同公司所获取。对于电网企业收集到的丰富数据资源,缺乏有效的共享和管理机制,使得数据的巨大价值被浪费。面对现在电网企业内部与外部的信息壁垒所带来的内外部信息不对称,以及数据价值的衰减,对电网企业不同业务系统之间进行数据的连接、贯通与共享,将进一步激发电网企业各部门的协同力以及活力。随着电力行业业务逐渐复杂,产生的业务数据越来越多样化以及复杂化,多业务系统跨链交互的需求也越来越多。

目前利用区块链来进行数据的访问控制,解决数据孤岛问题,在很多领域的应用越来越广泛,但随着数据的不断增加,区块链的存储空间成为其限制条件,同时数据隐私也是数据共享面临的关键问题。Liang 等[5]为了解决集中式医疗服务系统中的信息孤岛问题,提出了一个基于轻量级信息共享的医疗区块链系统,该系统使用交织编码器对原始的电子病例进行加密,隐藏电子病历的敏感信息,提出一种(t,n)门限的轻量级消息共享方案,将被交易编码器破坏语义的电子病历分成n份来存储,每个区块链节点存储其中的一份,然后,用(t1

基于属性的加密(Attribute-Based Encryption,ABE)技术不仅可以保护数据的隐私性,还可以对实体进行细粒度的访问控制,引起了很多研究学者的关注[12-13]。基于属性加密的思想首先由Sahai 等[14]提出。Bethencourt 等[15]首次提出了基于密文策略的属性加密(Ciphertext-Policy ABE,CP-ABE),CP-ABE 将访问策略放置于密文中,将属性集合放置在密钥中,只有当密钥中用户的属性集合满足密文中设置的访问策略时,用户才能对密文进行解密获得明文。针对单授权中心风险过于集中的问题,Lewko 等[16]提出了一个具有多授权中心的属性加密方案,其中任何一个授权中心都可以成为中心权威,每个属性授权中心都是独立的。Zhang 等[17]提出了一种去中心化的基于属性加密方案,该方案包含一个中央机构和多个属性机构,每个属性机构负责互不相交的属性域并且相互独立。Zhang 等[18]为了解决智能电网数据共享中的隐私保护和数据安全问题,提出了一种具有隐私保护的多权限属性加密方案。Banerjee 等[19]为了物联网环境中的数据使用提出基于CP-ABE 的多权限属性加密方案,并且具有恒定大小的密钥和密文。在上述多属性中心的属性加密方案中,存在解密开销过大的问题,本文提出一个支持可验证外包解密的多授权属性加密方案。

围绕能源互联网企业内部数据访问控制与企业之间数据共享过程中的隐私保护以及数据确权争议问题,本文提出了一种基于多联盟链和支持外包的多授权属性加密算法的能源数据访问控制方案。首先多联盟链是监管链和多条数据链的多链的架构,其中多条数据链存储各能源公司的数据,实现了不同能源公司数据的隔离保护;监管链存储用户跨通道数据访问信息,可实现对数据的监管、审计与确权。然后利用支持外包的多授权属性加密技术,缓解单授权中心风险过于集中计算负载过重的问题;同时增加预解密算法,用来缓解解密计算开销过大问题。最后通过安全性分析以及区块链网络的性能和支持外包的多授权属性加密的仿真实验分析表明,本文方案能有效防止隐私数据的泄露,实现能源数据的细粒度访问控制。

1 基础知识

1.1 区块链

区块链是一种以区块为单位有序链接起来的链式结构。区块是指数据的集合,相关信息和记录都包括在里面。区块由区块头和区块体两部分组成:区块头一般包含版本号、前一个区块的哈希值、merkle 根、时间戳等;区块体一般包含自前一区块之后发生的多笔数据交易信息。区块链的本质是一个多方维护的分布式账本,其利用加密技术、默克尔树和共识机制等技术,实现了交易数据的透明、不可篡改以及可追踪特性[20-21]。与传统数据库相比,区块链的优势是数据防篡改、可信任、多方维护。

1.2 双线性映射

定义1双线性映射。设有三个p素数阶乘法循环群G1、G2和Gt,g1是G1的生成元,g2是G2的生成元,若映射e:G1×G2→Gt满足如下三个性质,则称该映射是双线性映射。

1)双线性性。对于∀g1∈G1,∀g2∈G2,∀a,b∈Zp,均有成立。

2)非退化性。∃g1∈G1,∃g2∈G2,使得e(g1,g2)≠1。

3)可计算性。存在有效的算法,对于∀g1∈G1,∀g2∈G2,均可计算e(g1,g2)。

1.3 支持外包的多授权属性加密形式化定义

支持外包的多授权属性加密主要包括以下6个算法:

1)全局初始化算法:CA_Setup(1λ) →(GP)。

输入安全参数λ,由授权中心(Certificate Authority,CA)运行全局初始化算法生成系统的全局参数GP。

2)各属性中心(Attribute Authorities,AA)初始化算法:AA_Setup(GP) →(ASK,APK)。

输入全局参数GP,各属性中心(AA)运行属性中心初始化算法生成自己的公私钥对APK,ASK。

3)密钥生成算法:KeyGen(Uid,GP,S,ASK) →SKS,Uid,TKS,Uid。

输入用户的身份Uid,系统的全局参数GP,用户属性集合S和相关属性中心的私钥ASK,运行密钥生成算法生成用户属性相对应的用户私钥SKS,Uid,以及转换密钥TKS,Uid。

4)加密算法:Enc(GP,M,(A,ρ),{APK}) →CT。

输入全局参数GP,明文M,设置的访问策略(A,ρ)以及相关属性中心的公钥ASK,运行加密算法将明文M加密生成密文CT。

5)预解密算法:Pre⁃Dec(GP,CT,{TKS,Uid}) →CT'。

输入全局参数GP,密文CT,以及转换密钥TKS,Uid,判断转换密钥TKS,Uid中所包含的用户的属性集合是否满足密文中设置的访问策略,满足则可以将密文解密为预解密密文CT',否则输出⊥。

6)解密算法:Dec(GP,CT',{SKS,Uid}) →M。

输入全局参数GP,预解密密文CT',以及用户私钥SKS,Uid,判断用户私钥SKS,Uid中包含的属性集合是否满足密文中设置的访问策略,满足用户可将密文解密为明文M;否则输出⊥。

2 总体框架设计

2.1 系统模型

本文系统模型提出将区块链多链与本地数据库相结合,实现链上存储数据摘要、链下存储原始数据、同时结合支持外包的多属性中心属性加密机制,实现数据的细粒度访问控制。模型如图1所示,由如下6个实体组成:

图1 能源数据访问控制模型Fig.1 Energy data access control model

1)授权中心(CA)。主要负责生成系统全局参数,在系统用户申请注册时,根据用户的身份Uid,为其生成身份密钥,并且为属性中心AA生成唯一的Aid。

2)各属性中心(AA)。属性中心负责生成自己的公私钥对,以及根据系统全局参数、数据用户的身份密钥和属性集合为数据用户生成属性私钥以及转换密钥。

3)数据拥有者(Data Owner,DO)。能源数据所有者,对能源数据进行对称加密并存储在本地数据库,同时可设置访问控制策略,用于加密能源数据摘要、能源数据的存储地址和加密的对称密钥,并将其上传到相应数据链。

4)数据用户(Data User,DU)。能源数据用户,用户属性满足设置的访问控制策略时,可以获得访问数据的存储地址以及加密的对称密钥,进而可以对获得的密文数据进行解密,得到明文能源数据。

5)联盟链多链(Multi-Consortium BlockChain,MCBC)。不同数据链存储不同通道内的用户能源数据摘要、存储地址、对称密钥以及通道内用户的访问信息,监管链存储跨通道数据访问的信息,当能源数据的所有权有疑问,可通过追溯历史信息,实现数据的确权。

6)本地数据库(Local DataBase,LDB)。数据拥有者将能源数据利用对称加密技术进行加密存储在本地数据库,以缓解区块链的存储压力。

2.2 能源数据访问控制方案

1)在用户注册阶段,用户向授权中心CA 发送注册申请,授权中心CA 验证数据用户DU 的身份根据其身份编号Uid为其生成身份密钥uk,然后属性中心AA 根据数据访问者DU 提交的身份密钥uk和属性集合S为其生成对应的属性私钥SK以及转换密钥TK。

2)在能源数据授权阶段,数据拥有者DU 使用SM4 加密算法对能源数据文件进行加密存储在本地数据库,设置访问策略(A,ρ),利用设定的访问策略(A,ρ)对数据存储地址addr、对称加密密钥进行加密,得到密文CT,对加密后的数据以及数据摘要进行上传。

3)在能源数据上链阶段,共识节点对数据信息进行验证、共识,产生新区块并加入区块链,能源数据摘要、存储地址以及对称加密密钥则被存储在所在通道内的数据链以及监管链内。

4)在能源数据授权访问阶段:a)当相同通道内的数据用户根据数据摘要申请访问能源数据时,被授权用户可根据自己的属性私钥成功获得能源数据的存储地址以及SM4对称密钥,在解密前可由通道内的节点对链上加密数据进行预解密,被授权用户可对预解密密文进行解密,然后根据存储地址请求得到加密的能源数据,使用对称密钥解密获得明文数据;而对于未被授权用户则无法获得能源数据的存储地址,不能进行数据的访问,实现了可控的数据访问。b)在跨通道能源数据授权访问阶段,数据用户向监管链节点发送数据请求信息以及自己的属性私钥,监管链节点则调用链码向相应通道内的数据链申请数据的存储地址以及对称密钥,监管链节点获得加密数据,对跨通道数据用户的属性进行验证判断其是否符合访问控制策略要求,符合要求则将加密的数据存储地址以及对称密钥进行解密,获得预解密密文并将其返回给数据用户,数据用户利用属性私钥可解密获得数据的存储地址以及对称密钥,然后根据存储地址请求数据获得对称加密的密文数据,用对称密钥解密密文获得明文能源数据。

2.3 多链架构

本设计利用Fabric 中的通道来对不同能源公司的数据进行隔离,每个通道都有自己的账本,只有属于该通道的特定的组织内的节点才能访问维护其账本,不同通道的组织节点无法直接进行跨通道的数据访问。本文拟把各能源公司看作不同的组织,各能源公司分别处于不同的通道内,以对能源公司的数据进行隔离保护。各能源公司内部选择节点来维护自己的数据链,同时引入政府能源部门、社会权威部门等节点组成监管组织,存在于各个通道的交叉通道内,监管节点存储各交叉通道内的数据链以及用户进行跨通道数据访问的信息。当监管节点对用户的数据有异议时,可追溯历史信息,查找检查数据;当数据有确权争议时,监管节点也可查看存储的用户跨通道数据访问的信息,确定争议数据具体属于哪个用户。多链架构如图2所示。

图2 多链架构Fig.2 Multi-chain architecture

2.4 多链交互

目前主流的区块链跨链技术主要有公证人机制、侧链技术、中继技术以及哈希锁定等[22-23]。其中中继技术通过中继链来实现各单链的交互,可很好地实现多链的跨链互联。本文多链架构中处于不同通道内的用户不能直接进行数据的访问,如图3 所示,多链交互采用中继机制,有跨链需求的数据链可向中继链申请加入多链系统,中继链保存各数据链的信息以及与数据链的联络节点。当数据链A的用户想要访问数据链B 的数据,需要提交跨链数据访问的请求,由数据链A 的联络节点将访问请求发送到中继链(即监管链)节点,等待中继链验证操作,然后中继链节点调用链码访问数据链B 相应的数据;数据链B 的联络节点接收到访问请求向用户收集相关数据,并将数据返回给中继链节点,由中继链节点将数据返回给数据链A 的联络节点,再由数据链A 的联络节点将数据返回给数据链A 的用户。当跨链数据访问成功,监管链存储跨链数据访问的信息,实现跨链过程的数据可追溯以及数据的确权。

2.5 安全模型

本文方案使用选择明文攻击模型,该安全模型通过挑战者B与敌手A之间的交互游戏进行,具体步骤如下:

1)初始化阶段Setup。首先由挑战者B运行全局初始化算法,生成系统的全局参数GP。然后由敌手A指定被破坏的AA 的集合。每个属性中心AA 都执行AA 初始化算法,生成公私钥对。对于被破坏的AA,敌手可以得到公钥和私钥;对于正常的AA,敌手只能得到公钥。

2)询问阶段Phase1。敌手A向挑战者B发起属性集为S=(y1,y2,…,yq1)的私钥以及转换密钥询问,属性集合不能满足敌手A要挑战的访问结构(A,ρ),挑战者B运行密钥生成算法为敌手A生成属性集S相对应的私钥以及转换密钥。

3)挑战阶段Challenge。敌手A向挑战者B发送两个等长的消息M0,M1。挑战者B收到消息后,随机地抛一枚公平硬币,根据结果b∈{0,1}来加密消息,并且在访问结构(A,ρ)下加密,生成加密密文CT,然后挑战者B将挑战密文发送给敌手A。

4)询问阶段Phase2。重复Phase1,继续向挑战者B发起私钥以及转换密钥询问,私钥及转换密钥的属性集合不能满足要挑战的访问结构(A,ρ)。

5)猜测阶段Guess。敌手A输出关于密文b的猜测b'。如果b'=b,则敌手A赢得该游戏。

在上述游戏中,敌手A赢得该游戏的优势为:AdvA=。

定义2如果对于所有概率多项式时间的敌手A,赢得上述交互游戏的概率至多为AdvA,且AdvA是可以忽略不计的,那么本属性基加密方案在选择明文攻击下是安全的。

2.6 支持外包的多授权属性加密方案

算法具体步骤如下:

1)全局初始化算法:CA_Setup。

输入安全参数λ,由授权中心CA 选择两个阶均为素数P的乘法循环群G,GT,g为G的生成元,定义双线性映射e:G×G→GT,选择一个哈希函数H:{0,1}*→G,同时随机选取a∈Zp,计 算h=ga。输出系统的全局参数GP={g,h,G,GT,H}

当该系统收到用户的注册请求时,系统根据用户的Uid,随机取ruid∈Zp,为其生成身份密钥,公钥ukuid,d=gruid,d。

当一个AA 加入系统时,CA 需要对AA 的身份进行认证,如果该属性授权机构是合法的,则为其分配一个系统唯一的身份标识Aid。

2)AA初始化算法:AA_Setup。

输入系统的全局参数GP,根据每个属性授权机构AAi负责的属性集U n,对每个属性i∈Un随机取一个数αi,βi∈Zp,运行初始化算法,输出属性中心AAi的公钥

3)密钥生成算法:KeyGen。

输入用户的身份Uid,系统的全局参数GP,用户属性集合S和相关属性中心的私钥,AAi运行密钥生成算法生成用户属性相对应的用户私钥SKi,uid以及用户属性相对应的转换密钥TKuid。

随机选择t,z∈Zp,设用户的属性集合为S,用户私钥SKi,uid和转换公钥TPKuid为:

转换私钥TSKuid=z,转换密钥TKuid=(TPKuid,TSKuid)。

4)加密算法:Enc。

数据加密阶段,由数据拥有者(DO)执行,输入系统的全局参数GP以及明文M,此外输入设置的LSSS(Linear Secret Sharing Scheme)类型的访问策略(A,ρ),函数ρ将矩阵A的每一行映射到一个属性,其中A是一个l×n的矩阵,l代表属性数量,DO 随机选取一个用于共享的秘密值s∈Zp和一个随机向量v=(s,r2,r3,…,rn)∈Zp,密文

5)预解密算法:Pre-dec。

输入系统的全局参数GP,密文CT,以及用户属性集合对应的转换密钥TK,判断属性集合S中的属性是否满足密文中设置的访问策略(A,ρ):若满足则可以将密文成功解密,获得预解密密文;若属性集合S中的属性不满足密文中设置的访问策略(A,ρ),则输出⊥。

计算预解密密文为:

6)解密算法:Dec。

数据解密阶段,输入为用户私钥及预解密密文并计算:

3 安全分析

3.1 系统安全

1)系统的数据隐私保护问题。区块链的基本特性使得存储在区块链中的数据是不可更改的、可信任的。能源数据在存储到数据库时使用SM4 算法进行加密,其加密密钥以及数据摘要通过设置的访问策略加密后存储到通道内的数据链,只有满足访问策略的用户才能解密数据,保证了数据的机密性。本文通道中的数据相互隔离,每个通道都有自己的账本,只有属于该通道的特定的组织内的节点才能访问维护其账本,不同通道的组织节点无法直接进行跨通道访问。当数据用户访问数据时,首先用自己的属性私钥解密链上密文数据获得对称密钥、数据摘要以及存储地址,然后请求能源数据密文,根据对称密钥解密密文得到能源数据。数据拥有者设置访问策略,相当于数据拥有者对数据用户进行授权。因此,数据拥有者能够对自己的能源数据进行细粒度访问控制。

2)数据链跨链的安全问题。为了更好地实现区块链跨链,实现数据链间的互联互通,通过中继链机制使得位于不同通道的数据链能够进行跨链交互。数据链之间的交互需要数据链联络节点与监管链节点的协同来实现,因此跨链安全要保证通信安全,可以选择安全可信的通信技术来保护跨链的通信。跨链通信中如果数据链存在欺骗性交互,则其造成的损失会由主链或其他数据链的用户承担,因此对接入系统的数据链进行安全认证;同时跨链的安全性与监管链节点的安全可信有很大的关系,对监管链节点设置准入机制,以及对其跨链通信行为进行监控,来遏制节点的恶意行为。

3.2 安全性分析

3.2.1 数据的机密性

在数据共享系统中,如果数据用户的属性集合不能满足密文中设置的访问策略,用户则不能解密密文得到最终明文。本文的数据机密性建立在不可区分性选择明文攻击(Indistinguishable Chosen-Plaintext Attack,IND-CPA)模型安全上,即攻击者无法根据加密的消息区分密文。

定理1如果存在一个敌手A可以在多项式时间内以不可忽略的优势ε赢得安全游戏,那么可以构造另一个多项式时间内的敌手以ε/2 的优势解决决定性双线性Diffie-Hellman(Decisional Bilinear Diffie-Hellman,DBDH)困难问题。

证明 给定两个阶为P的循环群G,GT,设g是G群的生成元,e为双线性映射。另外,给定敌手A一个DBDH 实例(g,ga,gb,gc,e(g,g)z),其中z=abc或者z∈Zp是一个随机数,挑战者B与敌手A进行如下的模拟游戏:

本文方案使用IND-CPA 模型,该安全模型通过IND-CPA的交互游戏来模拟。游戏在挑战者B与敌手A之间进行,具体步骤如下:

1)初始化阶段(Setup)。挑战者B运行全局初始化算法CA_Setup,生成全局参数GP={g,h=ga,G,GT,H}给敌手A。敌手指定被破坏的AA 的集合,然后将其返回给挑战者B。每个AA 都执行AA 初始化算法AA_Setup,生成公钥APKAAi=和私钥。对于被破坏的AA,敌手获得公钥和私钥;对于正常的AA,敌手只获得公钥。

2)询问阶段(Phase1)。敌手A向挑战者B发起属性集合Suid的私钥询问以及转换密钥询问,其中属性集合Suid不满足设置的访问结构(A,ρ),挑战者B运行密钥生成算法KeyGen为A生成对应私钥{SK1,uid,SK2,uid,…,SKi,uid},以及转换密钥TK。随机选择t,z∈Zp,设用户的属性集合为S,对于任意x∈S,计算参数,然后将这些参数发送给敌手A。

3)挑战阶段(Challenge)。敌手A发送两个等长的消息M0、M1给挑战者B。挑战者B收到消息后,随机地抛一枚公平硬币,根据结果b∈{0,1}来加密消息,并且在访问结构(A,ρ)下加密,加密密文为CT,计算参数,然 后B将 挑战密文CT=(C0,C,C1,x,C2,x,C3,x,∀x∈[1,m])发送给敌手A。

4)询问阶段(Phase2)。重复Phase1,继续向挑战者B发起属性集的私钥、转换密钥的访问,用户的属性集合Suid不满足设置的访问结构(A,ρ)。

5)猜测阶段(Guess)。敌手A输出关于密文b的猜测b'∈{0,1}。如果b'=b,挑战者B输出0,则Z=e(g,g)abc;否则输出1,则Z=R。如果b=0,敌手的优势为ε,那么+ε;如 果b=1,那 么。所以挑战者B在DBDH游戏中的优势为:

因此,如果敌手以不可忽略的优势攻破了本文方案,那么挑战者B能以ε/2的优势解决DBDH困难问题。

3.2.2 抗合谋攻击

1)针对属性中心合谋攻击。本文方案有n个AA 共同管理数据用户DU 的属性集合,每个AA 分别保管不相交的属性集合,并且生成合法用户的一部分私钥SKi。一种情况是当恶意用户想要解密不属于自己的密文时,就需要截获每个AA生成的部分SKi并进行组装,才能获得最终的密钥SK,从而解密文件;只要有一个AA 的部分私钥未被泄露,恶意用户便不能计算出SK,这样攻击者获得的密钥是不能满足待解密密文中访问结构所要求的属性值的,最终攻击者不能解密密文。所以,本文方案可以抵抗针对n-1的AA合谋攻击。

2)对于用户合谋攻击。在本文方案中,当用户的属性集合不满足访问结构时,当有多个用户进行合谋共用属性私钥,合谋后的属性集合满足设置的访问结构时也不能对密文成功解密。本文方案在初始化阶段为每一个用户生成全局唯一的用户身份标识Uid,在密钥生成阶段,将用户的身份标识Uid嵌入到用户的私钥和转换密钥中,在预解密及解密阶段如果用户的私钥和转换密钥中包含不同的身份标识Uid,则将不能成功解密。所以本文方案是可以抵抗用户合谋攻击的。

4 实验与结果分析

4.1 区块链网络性能

区块链网络实验测试环境如表1所示。

表1 测试环境Tab.1 Test environment

测试区块链网络运行在单台主机上,包含分属于2 个组织的单个节点,2 个MSP(Membership Service Provider),1 个采用Solo 共识的排序服务,位于同一个通道内。测试方法为向区块链网络发送5 000 笔交易,交易类型为写入和查询,观察在不同的交易发送频率(Send Rate)下,系统的平均时延(Avg Latency)和吞吐量的变化结果。结果如图4~5所示。

图4 查询性能Fig.4 Query performance

可以看到平均时延随着交易发送频率的增加均有所上升,吞吐量在交易类型为查询,交易发送频率为每秒150 笔交易数(Transactions Per Second,TPS)时达到最大,吞吐量在交易类型为写入,交易发送频率为75 TPS时达到最大。

图5 写入性能Fig.5 Writie performance

4.2 支持外包的多授权属性加密实验

支持外包的多授权属性加密的实验环境如下:操作系统为64 位Windows 10 家庭中文版,CPU 为Inter Core E8400@3.00 GHz,内存大小为4 GB 内存,使用jpbc2.0.0 库,根据提供的TypeA 曲线构造双线性映射,利用Java 开发语言来实现本文支持外包的多授权属性加密方案。

如表2 所示,本文方案与相关方案功能性比较:文献[15]方案不支持多属性中心以及预解密;文献[16-24]方案支持多属性中心,但没有预解密阶段;本文引入多属性中心,解决单属性中心风险过于集中计算负载过重的问题,然后增加了预解密阶段,减少数据用户的解密开销。

表2 本文方案与其他方案的功能性比较Tab.2 Functionality comparison of proposed scheme and other schemes

本文方案与其他方案算法的各阶段计算量的比较如表3所示。在密钥生成阶段,因为本文方案增加了转换密钥的生成,所以本文方案计算量比文献[16]方案高;但与文献[24]方案相比,本文方案减少了指数运算所以计算量较低;在加密阶段,本文方案减少了指数运算,计算量比文献[16,24]方案低;在解密阶段,因本文方案增加了预解密阶段,所以本阶段只需进行一次指数运算就可以恢复出明文,本文方案比文献[16,24]方案大幅降低了解密开销。

表3 本文方案与其他方案算法的各阶段计算量比较Tab.3 Comparison of proposed scheme and other schemes in computing cost at each stage

在密钥生成阶段、加密阶段、解密阶段将本文方案与文献[16]方案和文献[24]方案进行实验对比分析,如图6~8 所示,其中属性机构数量固定为3个。

图6 不同方案的密钥生成时间对比Fig.6 Key generation time comparison of different schemes

图7 不同方案的加密时间对比Fig.7 Encryption time comparison of different schemes

图8 不同方案的解密时间对比Fig.8 Decryption time comparison of different schemes

5 结语

为了实现能源互联网数据企业内部与企业之间的细粒度访问控制,本文基于区块链多链、支持外包的多授权属性加密等技术提出了一种多链架构的能源数据访问控制方法,其中通过多数据链实现各能源公司数据的隔离保护,采用监管链实现跨数据链的交互以及存储跨数据链访问的信息对数据进行监管、审计以及确权;数据访问控制过程中,利用支持外包的多授权属性加密技术,在满足细粒度访问控制的同时,解决单授权机构负担过重、风险集中的问题以及缓解数据用户解密计算开销过大的问题。实验结果表明,本文方案可以在保护用户隐私的同时实现能源数据的细粒度访问控制。

猜你喜欢
私钥密文解密
解密电视剧 人世间
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
基于模糊数学的通信网络密文信息差错恢复
嵌入式异构物联网密文数据动态捕获方法
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
炫词解密
程序员把7500枚比特币扔掉损失巨大
炫词解密
炫词解密