基于区块链的去中心化电力交易与访问控制系统

2023-03-15 08:47杨剑蓝曾现均夏海燕庞俊杰
计算机应用与软件 2023年2期
关键词:密钥加密分布式

傅 宏 杨剑蓝 李 靖 段 立 周 川 曾现均 夏海燕 庞俊杰

1(国网重庆市电力公司营销服务中心 重庆 400024) 2(国网重庆信通公司 重庆 630014) 3(国网重庆市电力公司 重庆 630014) 4(重庆邮电大学计算机科学与技术学院 重庆 400065)

0 引 言

传统的电网主要由发电、配电、输电和用电四个环节构成,信息传输表现为单向通信。因此,用户的参与度很低。此外,数据存储高度集中,对电力数据的安全性威胁较大,且数据共享极其不便。随着信息化的深入发展与广泛普及,传统单向通信模式的缺点越来越明显。与此同时,信息技术的快速更新,使得传统电网结构也发生了翻天覆地的变化。在此背景下,智能电网应运而生。得益于先进的信息通信技术,智能电网在电力分配、交易管理等方面效果显著。电力信息实现了双向通信,用户参与度方面有了大力提升。现有的智能电网一般采用中心化模式,但随着分布式能源、微电网等应用的普及,传统的中心化模式在电力交易及数据共享过程中的缺陷越来越明显。首先,中心化的管理机制使得电力交易和数据交互等操作都需要经过电网中心,因此用户需要相信电网中心,这一问题对分布式能源等应用场景来说非常不友好。其次,数据的中心化管理机制不仅增加了电网数据中心的管理负担,同时也增加了电网数据的安全隐患。

近年来,不少学者研究了去中心化的区块链技术在智能电网中的应用。Nurzhan等[1]利用区块链、多重签名等技术实现了去中心化的能源交易系统,使得用户能够在匿名条件下协商能源价格和安全地进行能源交易。Gai等[2]为解决用户隐私泄漏但又不限制能源交易问题,提出了一种面向联盟链的分布式电力交易方案。该方案主要解决了智能电网中能源交易用户的隐私问题,并筛选能源销售方的分布。此外,还有不少学者讨论了电力数据的分布式存储与访问控制方法。Fan等[3]提出了一个基于区块链的智能电网数据存储方案,存储主要采用签密算法保证数据安全性,不支持细粒度访问控制机制。Sushmita等[4]基于同态加密和属性加密设计了一种用于智能电网的数据聚合和细粒度数据访问控制的去中心化安全框架。Neetesh等[5]提出了一种基于属性加密的访问控制方法,动态计算每一个用户的角色,并和设备同时验证用户的身份从而实现细粒度的数据访问控制。Liu等[6]基于密文策略的属性加密技术,提出了智能电网中的属性可撤销的多中心访问控制方案。

分析现有工作不难发现,目前关于智能电网分布式交易与数据存储研究主要分为如下两类:首先是基于区块链的分布式电力交易方法,如文献[1-2]等。其次是基于传统多中心属性加密的方法实现电力数据的分布式存储与细粒度访问控制方法,如文献[4-6]等。本文将首次考虑基于区块链和属性加密实现智能电网的分布式交易与数据细粒度访问控制机制。首先,提出了基于区块链的分布式电力交易方法。其次,为了满足电力数据的分布式存储与细粒度访问控制,本文设计了一个新的多中心属性加密方案。提出的方案满足电网区块链的应用,且与现有方案相比,无条件安全的系统初始化过程,进一步提高电网区块链的安全性。

1 预备知识

1.1 区块链

区块链(blockchain)是近年来广受关注的一种去中心化技术,简言之,它是一种去中心化的分布式网络数据库系统。在区块链系统中,所有数据交互都由网络中的所有节点参与确认或维护,并通过共识机制来保证交互数据的有效性和安全性。区块链具有去中心化、时序数据、防篡改等特点。根据准入规则的不同,一般将区块链分为公有链、私有链和联盟链三类。其中,联盟链指的是各组织通过达成契约等形式构成联盟,我们称这些组织为联盟节点,具有验证数据真实性并维护区块链运行权限。而一般的用户节点需要联盟节点的授权才能进入联盟链系统,其访问权限也受限。不难发现,联盟链更符合一般应用系统需求,因此联盟链又被称为业务链。值得注意的是,基于区块链的智能电网系统与比特币之间存在一些差异。基于公有链的比特币系统,如果要在区块上达成协议,需要上传区块的节点满足比如工作量证明的共识机制。而本文设计的基于区块链的去中心化电力交易与访问控制系统,不同于匿名化的比特币系统,用户都是实名的,因此联盟节点对区块签名即可保证数据的真实性。此外,区块链系统是一个分布式数据库,因此需要保证不同节点之间的数据一致性。目前,对联盟链而言,实用拜占庭容错(PBFT)协议是一种被广泛接受的共识机制。

1.2 属性加密

在属性加密方案中,每个用户关联一组属性标识,用户拥有相应的属性密钥。加密者在加密消息时,制定一个解密策略并用该策略对消息进行加密。最后,属性标识满足属性策略的那些用户可以解密密文。在传统公钥加密方案中,加密者都需要指定一个明确的解密者。然而,在属性加密方案中,加密者不再需要指定明确的解密用户,因而提供了更为细粒度的访问控制机制。

属性加密的概念由Sahai等[7]首次提出。随后,属性密码受到广泛研究与应用,例如文献[8-9]等。在这些方案中,都需要一个可信的密钥生成中心管理属性集并负责用户的密钥生成工作。为了降低对密钥生成中心的过多依赖,Chase[10]提出了多中心属性加密方案的概念,并在文献[7]的基础上实现了一个具体的方案。为了抵抗用户的合谋攻击,Chase的方案需要一个额外的可信中心对用户的全局身份信息进行统一认证,因此他的方案本质上来说也需要一个额外的弱化可信中心。为了解决这一问题,Lin等[11]将分布式密钥生成算法[12]结合到文献[7]的方案中实现了不依赖任何可信中心的属性加密方案。梁艳丽等[13]提出了一种基于区块链的云存储加密数据共享方案,其核心在于将属性密码的密文存储在智能合约中。李非非等[14]提出了一个具有隐私保护功能的固定密文长度的分布式属性加密方案。杨诗雨等[15]提出了一种密钥可验证的多授权中心属性加密方案。

多中心的属性加密方案包括如下四个算法:

(1) 系统初始化(Setup):各属性管理弱中心自行选定密钥ski并合作生成系统的公开参数params。

(2) 加密(Enc):加密者制定解密策略f并用其对数据进行加密,Enc(params,f,m)→c。

(3) 密钥生成(KeyGen):用户拥有属性集合x,他向至少t个弱中心发起请求,若请求通过,则可获得属性密钥skx,KeyGen(ski,x)→skx。

(4) 解密(Dec):如果用户的属性集x满足密文c的解密策略f,则能正确解密,否则无法解密,Dec(skx,c)→c/φ。

多中心属性加密方案的安全性主要包括两个方面:首先,只有达到系统预设的门限值t个弱中心授权,用户才能获得密钥;其次,当且仅当用户密钥skx中关联的属性集x满足了解密策略f,即f(x)=1,才能正确解密,否则无法获得任何信息。

2 基于区块链与属性加密的分布式电力交易与数据存储系统

2.1 系统模型

基于联盟链的智能电网模型如图1所示。联盟节点由各联盟组织构成,例如电力公司、发电厂、充电桩等,这些联盟节点参与数据共识并维护电网区块链的运行。电力用户通过联盟节点的授权后,进入区块链系统,并根据区块链智能合约的约束进行去中心化交易。与此同时,用户产生的电力数据被各联盟节点收集并安全存储。

图1 基于区块链的智能电网模型图

在电力数据存储与访问控制过程中,可以采用两种不同的方法。第一种方法是各联盟节点分别存储一份完整的数据备份,当有用户需要获取相关电力数据时,他访问任意联盟节点获取授权即可。第二种方法主要针对数据量较大的场景,将电力数据集中存储在一个地方,例如云服务器等,然后再将数据的地址及完整性校验信息存储到区块链上。因为区块链具有去中心化的防篡改性质,所以尽管数据依然是集中存储,也可以一定程度上实现去中心化安全管理。

基于区块链与属性加密的分布式电力交易与数据存储系统如图2所示。系统包含三个层次,分别是区块链层、验证层和数据存储层。区块链层主要采用数据块链式结构对交易数据或电力数据地址进行分布式记录。区块采用Merkle树对数据进行打包并形成可用于验证的Merkle根。目前,较为著名的区块链平台包括Hyperledger Fabric、以太坊等。验证层由各联盟节点构成。数据存储层主要用于存储电力数据并提供唯一存储地址供访问获取。区块链用户通过向联盟节点申请授权获取访问区块链的权限。用户节点不参与区块链的验证维护工作。数据使用者可以向联盟节点发起请求获得数据地址与属性密钥,进而解密密文获取明文数据。

图2 基于区块链与属性加密的分布式电力交易与数据存储系统模型

2.2 去中心化电力交易

基于区块链的去中心化电力交易模式主要包括注册授权、购电交易和交易记录存储三个阶段。主要流程如图3所示。

图3 去中心化电力交易流程

1) 注册授权。电力用户如果需要访问智能电网区块链系统,首先得向联盟节点发起注册请求。联盟节点接收到注册请求后,认证用电客户的身份信息并授权。用户获得授权后就可以访问区块链并与其他节点进行分布式购电交易。

2) 购电交易。用电客户在需要购买电力时,向其他售电节点提交购电信息请求。售电节点首先验证其节点身份信息的合法性,如果验证通过则执行智能合约完成购售电交易并将交易信息发送给用户。区块链上的电力交易由密码算法、智能合约以及共识机制等保证交易的安全性。

在传统中心化电力交易模式中,发电厂生产的电力全部进入电网系统统一售卖。因此,即使在电厂附近的电力用户也可能需要很长的输电线才能从区域电网中心处获取电力。这种传统的中心化交易模式便于统一管理与控制,但是也无疑增加了输电成本。此外,近年来逐渐兴起的分布式发电或微电网也对传统中心化电力交易提出了巨大的挑战,例如风力发电、光伏发电或其他类型的小微发电厂产生的电力如果全部接入电网统一交易,将会大大增加电力交易的管理成本。

基于区块链技术可以很好地解决这一问题。各分布式发电厂均以联盟节点的身份加入智能电网区块链系统。随后,发电厂通过区块链系统发布可供售卖的总电量及实时售价,用户通过区块链系统直接向发电厂购买电量即可。因为区块链具有去中心化的不可篡改性质,所以可以保证交易的真实性与公开监督等性质。

3) 交易记录存储。电力交易产生以后,验证节点首先会验证交易的有效性,然后将交易打包到区块中并根据区块链的记账规则将交易记录到区块链系统中,在该过程中,每笔交易都会产生唯一可识别的标识符。随后,通过共识机制所有验证节点会收到并认可相同的区块信息,从而认可了区块中包含的电力交易。此外,在区块链系统中,各节点还可以根据交易的标识符搜索某笔交易在区块链中的信息,例如区块高度、完整性校验等功能,从而保证交易信息的去中心化不可篡改性。

2.3 去中心化电力数据存储

用户的用电数据或地址、电力交易信息等均需要存储至区块链系统。为了保证电力数据的机密性,需要对数据进行加密操作。此外,为了实现对加密数据的细粒度访问控制,本文设计一个新的多中心属性加密方案。

本文的多中心属性加密方案以文献[7]的支持门限解密策略的属性加密方案作为基础方案,但文献[7]的方案是中心化的,需要可信中心负责生成用户的属性密钥,因此系统用户需要无条件相信可信中心。Chase[10]基于文献[7]的方案提出了一个需要额外可信认证中心的多中心属性加密方案。Lin等[11]将计算安全的分布式密钥生成方法结合到文献[7]的方案构造了一个不依赖任何可信中心的属性加密方案。在本文中,首次将多中心属性方案结合到区块链系统中用于电力数据的访问控制机制。在区块链系统中,联盟节点将充当弱中心角色管理不同属性集并负责用户的密钥生成与授权。联盟节点往往拥有较强的计算能力,因此,为了防止这一潜在攻击,本文选取无条件安全的分布式密钥生成实现无条件安全的系统初始化,进一步保证系统的安全性。

1) 系统建立。系统建立过程包括系统初始化和联盟节点密钥建立两个步骤。

① 系统初始化:联盟链服务器随机先选择一个素数p,G和GT是两个阶为素数q的乘法循环群,g是G的生成元,双线性映射e:G×G→GT,再选取系统门限值t与哈希函数H:{0,1}→Zq,之后服务器公开公共参数params={G,GT,p,g,e,t,H},其中t为用户获取密钥至少需要获得的弱中心授权个数。联盟链服务器根据电网需求选取属性集A={att1,att2,…,attn},并给每一个弱中心(即联盟节点)分配一个所管理的属性atti。

4) 解密。用户idi从数据库下载所需密文c,看自己是否满足该密文的属性策略,然后使用自己的属性密钥skx对密文c进行解密,解密过程如下:

最终用户得到数据消息m。

3 方案分析

3.1 基于区块链的去中心化交易

基于区块链的电力交易具有如下性质。

1) 去中心化。在基于区块链的交易系统中,用户购电操作不再依靠中心化的售电和记账,而是采用去中心化的方式。具体表现包括更丰富的购电渠道,电力用户可以根据需求或价格选择合适的售电节点,包括风力发电、光伏发电等分布式能源节点,而不用像传统电网中只能向电网公司购买。此外,交易信息也不再依靠唯一中心来管理,而是依靠区块链上各联盟节点的共识机制进行记账。如此一来,降低了对电网管理中心的依赖性,同时公开的分布式交易也有助于提升买卖电双方的信用关系。此外,分布式的电力交易无需中心化的交易管理,还可一定程度上降低交易成本。

2) 交易安全性。根据区块链上的共识机制,例如工作量证明(PoW)、权益证明(PoS)、实用拜占庭容错(PBFT)等,可以保证在去中心化场景中,即便存在少量恶意节点,各诚实节点存储的数据依然是一致的。此外,区块链中的Hash函数、数字签名等密码技术可以保证交易可信,且交易数据无法被篡改,保障用户信息安全。

3) 时序可追溯。在区块链系统中,交易被存储在某个区块中,区块含有时间戳信息,因此基于区块链的电力交易天然就具有时序性。此外,可利用智能合约及交易标识符查询交易信息,因此具有可追溯性。由于整个区块链信息是分布式存储于各个节点,因此交易的追溯信息是也安全可信的。

3.2 基于属性加密方案的数据存储与共享

1) 正确性分析。本文提出的去中心化属性加密方案主要结合了分布式密钥生成技术[12]和文献[7]的属性加密方案。在本文的方案中,即便联盟节点拥有无限计算能力依然无法获取共享的主密钥s,除非超过t个联盟节点勾结恢复s,如果发生这样的情况,那么区块链联盟本身将不再有意义,因此不考虑这种极端情况。系统初始化的正确性可直接由无条件安全的分布式密钥生成方案的正确性得到。其次,对满足解密策略f(x)=1的属性密钥skx,它可以正确恢复消息m,原因如下:

e(g,gk)s=e(S,g)k

2) 安全性分析。属性加密方案的安全性要求没有满足解密策略的f,则不能正确解密密文。如果用户的属性集x不满足解密策略f,即f(x)=0,那么用户因为缺少所对应的属性密钥Di,在解密阶段就没有办法消除掉系统主公钥里面的si。其次如果用户的所拥有的属性密钥少于门限值t,也就无法在解密阶段消除多项式中的非常数项部分,从而不能计算出e(S,g)k,因此不能解密恢复消息m。

3) 性能分析。将本文提出的方案与文献[7]、文献[10-11]、文献[13-15]提出的属性加密方案进行比较。表1展示的是功能对比。其中,“无”表示方案需要依赖一个可信的密钥生成中心;“弱”表示不需要可信的密钥生成中心,但需要一个额外的可信中心对用户的全局身份信息进行统一认证以防用户发起合谋攻击;“强”表示不需要可信中心。如前所述,区块链是去中心化的,因此需要可信中心的属性加密方案并不适用于区块链系统。其中,文献[13]将中心化的属性加密方案用于区块链系统中,密钥生成中心拥有所有用户的密钥从而可以获取所有用户的数据,这与区块链系统本身是矛盾的。从表1的功能对比结果可知,本文设计的多中心属性加密方案功能更完善,且适用于区块链系统。

表1 功能对比

表2和表3分别展示了各方案在存储开销和加解密计算开销的对比结果。文献[10-11]以及本文都是以文献[7]的方案为基础方案,四个方案的区别在于用户密钥生成的方式不一样,所以四个方案在密钥/密文长度、加解密计算开销、安全性假设方面都是一致的。因此,表2和表3只比较文献[13-15]和本文所提出的方案。|x|、|f|、|G|、|GT|分别代表用户属性个数、解密策略属性个数、群G中元素的长度、群GT中元素的长度,Tpar、Tmul、Texp分别表示双线性对计算时长、群的点乘计算时长以及群的指数计算时长。从表2和表3对比结果得知,本文方案的存储开销及加解密计算开销优于其他同类方案。

表2 存储开销对比

表3 加解密计算开销对比

4 结 语

随着分布式能源、微电网等应用的出现,传统中心化电力交易与数据访问控制机制的弊端越来越明显。针对这一问题,本文基于区块链技术设计了去中心化的电力交易方法。此外,为了实现电力区块链系统中数据的安全存储与共享,本文还构造了一个多中心的属性加密方案对电力数据安全加密并提供细粒度访问控制机制。通过对比分析得知,本文所提出的方案在功能、存储开销和加解密计算开销等方面优于同类型属性加密方案。

猜你喜欢
密钥加密分布式
密码系统中密钥的状态与保护*
一种基于熵的混沌加密小波变换水印算法
一种对称密钥的密钥管理方法及系统
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
基于ECC的智能家居密钥管理机制的实现
认证加密的研究进展
基于DDS的分布式三维协同仿真研究
基于ECC加密的电子商务系统
基于格的公钥加密与证书基加密