刘期烈,陈 澄
(重庆邮电大学通信与信息工程学院,重庆 400065)
目前,太阳能发电和风力发电已经成为全球重要的绿色电力来源[1],从社会可持续发展的角度来看,可再生能源的有效利用是改革能源格局的重要方向。由于传统电网系统难以整合可再生能源及满足分布式发电的相关要求并且能源效率低下[2],因此能源互联网概念被提出,旨在整合信息通信技术、网络物理系统和电力系统技术的基础上开发下一代智能电网(Smart Grid,SG)[3]。然而,可再生能源的不确定性可能会引起电网波动,导致电网负荷过高,因此迫切需要其他能源来维持电网稳定。此外,用电量需求较低时会导致用电量小于电网输出电量,这就意味着过剩的能量会被浪费。为解决上述问题,研究人员提出了车辆到电网(Vehicle-to-Grid,V2G)技术[4]。V2G 作为智能电网的重要组成部分,核心思想是借助大量具有双向智能充电器的电动汽车(Electric Vehicle,EV)的储能源充当可再生能源的缓冲以维持电网的稳定,并且减少电网中过剩能量的浪费。EV 在电网的用电高峰时段给电网馈电以维持电网的稳定,在非高峰时段给电池充电,存储电网过剩的能量以减少能量浪费。EV 可在电价低时从电网买电,电价高时向电网售电,从中赚取差价获得收益。V2G 技术不仅缓解了可再生能源造成的电网不稳定和过剩能量浪费的问题,而且给电动车用户和电网带来了额外收益。然而,由于车辆的移动性、充放电操作和相关网络通信要求,EV 和其他V2G 实体之间存在安全隐患,可能导致EV 用户不愿意与电网进行能源交易,因此亟需设计一种安全高效可靠的V2G 网络能源交易机制。
近年来,V2G 网络能源交易中已经使用多种加密方法以保证交易双方的安全性。文献[5]提出一种安全的智能电网认证密钥协议,该协议在Canetti-Krawczyk 对手模型下实现了智能电表凭据、会话密钥保护等多种安全功能。文献[6]提出一种基于椭圆曲线密码学(Elliptic Curve Cryptography,ECC)的轻量级密钥协商方案。文献[7]设计一种轻量级身份验证和隐私保护方案,保证V2G 连接的保密性和完整性。文献[8]提出一种为智能电表提供信任服务的认证方案。文献[9]提出一种为智能电表和服务提供商提供隐私保护服务的密钥协议。文献[10]提出一种基于身份与ECC 的密钥建立协议,减少了AMI 计算开销。文献[11]提出一种结合对称密钥技术和ECC 的新型密钥管理方案,可以有效抵抗中间人攻击和重播攻击。文献[12]提出一种有效的密钥分发协议,并证明了其对于V2G 网络的安全性。文献[13]提出一种新型的V2G 网络隐私保护身份验证方案,利用非超奇异椭圆曲线构建EV[14]和智能电网的轻量认证协议。上述解决方案虽然具有较低的通信和计算成本,但缺乏匿名保护并依赖于集中式系统。
随着EV、SG 和V2G 的发展,现有能源管理方案开始向分布式和去中心化方向转移,在V2G 网络中由于集中化而引起的安全和隐私问题也是需要关注的问题。为解决V2G 网络中的安全和隐私问题,研究人员引入了区块链技术。区块链[15-16]实际上是一种分布式、数据共享和不受篡改的数据库分布式账本,通过数据加密、共识协议、时间戳等方式为系统提供完整安全可靠的服务[17-19],改善了传统集中式系统中普遍存在的高成本、数据存储和效率低下的问题[20]。GUAN 等[21]在SG 中提出一种基于区块链安全通信的隐私保护和数据聚合方案,并使用Bloom 过滤器 实现快 速认证。WANG[22]提出针 对V2G 网络的基于区块链的匿名奖励计划(BBARS),并使用公钥密码系统进行安全性分析。LI 等[23]提出一个基于区块链的安全能源交易方案及基于信用系统的支付方案,利用Stackelber 博弈论进行最优定价。LALLE 等[24]提出一种依赖于区块链技术和K-means++机器学习算法的用户隐私保护方案。K-means++机器学习算法将用户分组到集群中,每个集群都使用一个专用的区块链来记录成员数据,并使用化名掩盖用户身份,利用Bloom 过滤器快速验证用户身份。GONG 等[25]在智能电网中提出一种基于区块链的总需求响应系统,通过区块链技术实现需求响应主体身份认证、响应数据审计等功能,保障需求响应业务流程和数据可靠性,设计高度信任和可靠的需求响应系统。然而,由于上述解决方案中的通信各方缺乏身份验证和匿名保护,V2G 通信仍面临诸如EV 假冒攻击、重放攻击、窃听攻击等安全风险,因此本文提出一种基于区块链与椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)的安全匿名身份认证方案。
在V2G 环境下,基于区块链的能源交易系统模型如图1 所示。模型中包含不同实体及其相应的执行步骤,核心实体包含EV、充电站(Charging Station,CS)、数据中心(Data Center,DC)、区块链网络等4 种。EV 具有双向的充电器,可以进行充放电操作。CS 配备智能电表,记录流出和流入的能量值并存储当前的交易账单。为了鼓励EV 积极加入电网中的能源交易,在每笔交易中CS 会给予EV 适当的奖励。DC 作为一个中心机构,接收EV 和CS 之间发送过来的交易并帮助维护整个区块链网络,还负责注册合法和非法的EV 和CS 身份。区块链网络辅助EV 与CS 进行安全和匿名的能源交易,验证DC 创建的交易并将交易记录写入区块中。
图1 系统模型Fig.1 System model
基于区块链的能源交易系统主要操作流程如下:
1)初始化系统,首先DC 选取合适的加密算法并生成随机数,然后DC 利用随机数并通过相应的加密算法生成自身的公钥和私钥,同时将自身的身份信息结合自身的私钥可计算出对应的伪身份,最后DC 释放公共参数为后面的注册阶段和身份认证阶段做准备。
2)EV 和CS 向DC 发出注册请求,DC 收到来自EV 和DC 的注册请求后,为EV 和DC 分配唯一的身份标识号,并利用身份标识号计算伪身份HEV和HCS,EV 和CS 获得的伪身份与其在区块链中的地址相对应。此外,DC 还负责为所有EV、CS 生成公-私钥对。
3)在EV 和CS 注册完成后,EV 向CS 请求V2G服务及相应的能源交易。CS 在接受EV 的请求交易前,必须完成EV 和CS 之间的身份认证过程以保证能源交易的安全。为使EV 的通信开销最小,本文将EV 和CS 分别与DC 进行相互认证,间接完成EV 和CS 的相互认证。
4)在DC 和EV、DC 和CS 相互身份认证成功后,CS 就向指定的EV 提供充电/放电服务并产生相应的交易结果。该交易结果被传送到DC,DC 创建交易,区块链验证其交易结果并使用实际拜占庭容错算法建立共识并将交易结果写入一个区块。区块链网络建立共识后,CS 将交易细节发送到EV。
为减少通信开销和计算时间,使EV 和CS 分别和DC 进行相互认证,间接完成EV 和CS 的相互认证。与传统相互认证过程相比,该过程减少了EV 和CS 的相互认证过程。此外,使用计算时间较少的ECSDA、SHA-1、字符串拼接计算进行身份认证,其中,SHA-1 算法占用内存最小,字符串拼接计算比异或、按位与等运算耗时少。通过合理设计EV、DC 和CS 在相互认证过程中交换信息的顺序,使DC 承担较多的计算开销来减少EV 的计算开销。
本文基于能源交易系统模型,在V2G 环境下提出基于区块链的能源交易身份认证方案。该方案分为系统初始化、身份注册、相互认证等3 个阶段。
DC 初始化相应变量,具体过程如下:
1)DC 选择基于ECDSA 的椭圆曲线E并选取一个点P,同时生成随机数r。
2)DC 使用随机数r并通过单向哈希函数生成私钥SKDC,然后基于ECDSA 生成相应的公钥PKDC=SKDC∙P。
3)DC 选择身份IDDC并计算其伪身份HDC=H(SKDC||IDDC)。
4)DC 公布公有变量E、P、r、PKDC、HDC和单向防哈希碰撞的哈希函数H()。
CS 和EV 在DC 上进行身份注册以获取各自的伪身份,如图2 所示,EVi在DC 上的具体注册过程如下:
图2 注册过程Fig.2 Registration process
1)EVi选择标识自己唯一身份的IDEV,如车牌号。EVi产生当前时刻的时间戳TSEV,计算消息M1=(IDEV||TSEV)。EV 通过安全通信通道将M1发送给DC。
2)DC 收到来自电动汽车的消息M1后,提取相应参量IDEV和TSEV,验证时间戳TSEV是否在时间允许执行的范围内。
3)DC 查询EVi的IDEV是否存在数据库或撤销列表中。如果已经存在当前数据库中,则表明早期已经注册,否则DC 接收EV 的注册请求并为其指定身份UIDEV;如果存在撤销列表中,则表明该EV 是不合法的,连接断开。
4)DC 通过单向哈希函数H()和ECDSA产生EVi的公-私钥对:私钥SKEV和公钥PKEV。
5)DC 计算EVi的伪身份HEV=H(SKEV||UIDEV),然后通过安全通信通道把私钥SKEV和伪身份HEV发送给EVi。
6)DC 存储伪身份HEV和公钥PKEV,EVi存储HEV和私钥SKEV。
CSj注册的具体过程如下:
1)CSj选择一个标识自己唯一身份的IDCS。CSj产生当前时刻的时间戳TSCS,然后计算消息M2=(IDCS||TSCS),CS 把M2发送给DC。
2)DC 收到来自电动汽车的消息M2后,提取相应的参量IDCS和TSCS,并验证时间戳TSCS是否在时间允许执行的范围内。
3)DC 查询CSj的IDCS是否存在数据库或撤销列表中。如果已经存在当前的数据库中,则表明早期已经注册,否则DC 接收CS 的注册请求并为其指定身份UIDCS;如果存在撤销列表中,则表明该EV 是不合法的,连接断开。
4)DC 通过单向哈希函数H()和ECDSA 产生CSj的公-私钥对:私钥SKCS和公钥PKCS。
5)DC 计算CSj的伪身份HCS=H(SKCS||UIDCS),然后通过安全通信通道把私钥SKCS和伪身份HCS发送给CSj。
6)DC 存储伪身份HCS和 公钥PKCS,CSj存储HCS和私钥SKCS。
EVi和CSj分别与DC 进行相互认证,认证过程需要借助ECDSA、单向防哈希碰撞的哈希函数以及字符串拼接计算,如图3 所示,相互认证的具体过程如下:
图3 相互认证过程Fig.3 Mutual authentication process
1)EVi连 接CSj中的充 电节点,EV 初始化,产生随机 数r1,通 过ECDSA 计 算K1=r1∙P和K2=SKEV∙K1。
2)EV 产生时间戳TSEV,计 算AuthEV-DC=H(K2||HEV||HDC||TSEV),将M1=
3)CS 接收到M1后,对EV 产生的时间戳TSEV进行验证,只有当时间戳TSEV在允许的范围内时才继续执行。然后,初始化CS,产生随机数r2∈Z,通过ECDSA 计算K3=r2∙P和K4=SKCS∙K3。
4)CS 产生当 前时刻 的时间 戳TSCS,计 算AuthCS-DC=H(K4||HCS||HDC||TSCS),将M2=
5)DC 接收到消息M2后,对EV 的时间戳TSEV和CS 的时间戳TSCS进行验证,然后先计算AuthDC-EV=H(r1∙PKEV||HEV||HDC||TSEV)和AuthCS-DC=H(r2∙PKCS||HCS||HDC||TSCS),再判断等式AuthDC-EV=AuthEV-DC和AuthDC-CS=AuthCS-DC是否成立,如果都成立,则CS 和EV 被验证通过,否则连接断开。
6)DC 验证EV 和CS 后,产生当前时刻的时间戳TSDC并计算K5=SKDC∙K1,然后计 算 AuthDC=H(K5||HEV||HCS||HDC||TSDC),将M3=
7)CS 接收到消息M3后验证TSDC,计算H(r1∙PKDC||HEV||HCS||HDC||TSDC),判断等式AuthDC是否成立,如果成立,则DC 验证通过,否则断开所有连接,将M4=
8)EV 接收到消息M4后验证TSDC,计算H(r1∙PKDC||HEV||HCS||HDC||TSDC),判断等式AuthDC是否成立,如果成立,则DC 验证通过,否则断开所有连接。
将本文方案与文献[5,10-12]方案在EV 和CS身份隐私保护、防假冒攻击、防重放攻击、防窃听攻击等4 方面进行安全性分析与对比,如表1所示。
表1 5 种方案的安全性比较Table 1 Comparison of the safety of five schemes
对于本文方案的安全性具体分析如下:
1)EV 需要将有效身份IDEV和当前时刻产生的时间戳TSEV发送给DC。TSEV不会重复使用,只在EV 当前进行的活动中是有效的,因此可通过改变EV 的时间戳TSEV来达到身份隐私保护的目的。此外,EV 在DC 中注册后会得到DC 分配的用以标识身份的伪身份HEV,这确保了EV 身份的匿名性和不可追溯性。CS 身份隐私保护与EV 类似,因此不再赘述。
2)如果一个敌对的EV 想假冒一个合法的EV 身份,需要知道合法EV 的公-私钥对(PKEV,SKEV),如果不知道钥匙对,则不能产生伪身份HEV,就不能通过相互认证。另外,在V2G 网络中,如果敌对的EV发送错误消息或者重复身份给DC 试图进行注册获取合法的身份,系统会检测出错误的EV 信息,只有经过认证的EV 才能进行身份注册和相互认证。
3)由于每次都有相应的时间戳TS 参与哈希计算过程,如果时间戳发生改变,则生成的新哈希值与旧哈希值不相等,因此旧哈希值失效。这样每个新的哈希值都带有新的时间戳TS 以防止重放攻击。
4)EV 需要使用DC 分配的伪身份HEV。由于带有时间戳TSEV的伪身份HEV仅对单个活动有效,因此除了DC 以外,没有人能找到EV 的身份信息。可见,通过改变时间戳TSEV可以防止每个活动中的EV被窃听。
本文方案中基本计算或变量的通信开销设置如表2 所示。
表2 基本计算或变量的通信开销设置Table 2 Setting of communication overhead of basic computations or variables bit
使用表2 中的设置得到注册和认证过程中的通信开销如图4 所示,可以看出在认证过程中EV、CS和DC 都具有较小的通信开销,其中EV 的通信开销最小,DC 的通信开销最大。
图4 注册和认证过程的通信开销比较Fig.4 Comparison of communication overhead of registration and authentication process
使用ECDSA、SHA-1 算法和字符串拼接append的平均计算时间分别为5.1 ms、2.4 ms 和0.2 ms,根据这些数据得到注册和认证过程中的计算开销如图5 所示,可以看出在认证过程中EV、CS 和DC 都具有较小的计算开销,其中EV 的计算开销最小,DC 的计算开销最大。
图5 注册和认证过程的计算开销比较Fig.5 Comparison of computation overhead of registration and authentication process
在认证过程中,本文方案与文献[5,10-12]方案的通信开销和计算开销比较如表3 所示,可以看出本文方案在认证过程中的通信开销和计算开销最小,主要原因为本文使用的ECDSA、SHA-1 和字符串拼接append 的平均计算时间较少,SHA-1 计算输出为160 bit 的哈希值,并且简化了认证过程的相关计算,减少了哈希计算次数。
表3 5 种方案在认证过程中的通信开销和计算开销比较Table 3 Comparison of communication overhead and computation overhead of authentication process of five schemes
在整个身份认证过程中,V2G 网络中EV、CS、DC 等3 个实体都会产生计算与通信开销。计算开销主要体现在ECDSA 和加密哈希函数计算上,通信开销主要体现在Tokens 数量上,如图6 所示,其中,#ECDSA、#Hash、#Tokens 分别表示ECDSA 计算次数、Hsah 计算次数和Tokens 消息数。由于传入的Tokens 消息数量越多,实体的通信开销就越高,由图6 可以看出,在认证过程中EV 的计算和通信开销最小,而DC 具有最大的计算和通信开销,因此本文设计的身份认证方案满足资源受限的EV 和资源充足的DC 的实际需求。
图6 认证过程的计算开销与通信开销比较Fig.6 Comparison of computation overhead and communication overhead of authentication process
将本文身份认证方案与文献[20,26]身份认证方案进行对比,3 种方案的EV 计算开销和通信开销比较如图7 所示,可以看出本文方案与文献[20,26]方案相比,Hash 计算次数减少了1 次,相当于减少了33%的Hash 计算开销,传入的Tokens 消息数量减少了1 个,相当于减少了25%的通信开销。
图7 认证过程的EV 计算开销与通信开销比较Fig.7 Comparison of EV computation overhead and communication overhead of authentication process
针对车辆到电网环境下EV、CS 和DC 之间的安全通信与身份隐私保护问题,本文提出一种基于区块链的安全匿名身份认证方案,实现V2G 网络下EV、CS 和DC 之间的身份隐私保护和相互认证。与现有身份认证方案进行安全性、计算开销和通信开销比较,结果表明本文方案适用于V2G 网络,可防御多种安全攻击,并且进一步减少了EV 在认证过程中的通信成本和计算时间。下一步将在基于区块链的身份认证前提下,研究V2G 网络下的能源交易机制,以实现电动汽车与智能电网之间交易利益的最大化。