朱 嵩,王化群
(南京邮电大学 计算机学院,南京 210023)
智能电网的基本要求是使操作中心可以通过用户配备的智能电表收集电力数据,获得其管辖范围内所有用户的实时电力数据,从而能够进行动态的电力调度、电价制定等操作。然而,在这个过程中存在较大的隐私安全问题。由于智能电网与日常生活紧密相连,电力数据在传送过程中可能被非法攻击者窃取,从而造成用户隐私信息泄露[1]。例如,攻击者通过收集大量某用户在各个时段的电力数据,即可推测出用户的作息习惯,这样会暴露用户的个人隐私。另一方面,近年来分布式光伏发电产业发展迅速,对智能电网提出了新的要求。2017 年,德国1/3 的家庭已在房顶上安装太阳能电池板,自发自用,分布式光伏发电约占全国年用电量的8%。此外,德国实行溢价补贴,即光伏发电可获得固定发电补贴。电网用户在获得光伏发电奖励时,并不想暴露个人信息,因此,隐私安全显得尤为重要,尤其是电网用户的匿名性。智能电网的实现需满足以下3 个需求:安全性需求,即保证个体用户实时电力信息的数据保密;实用性需求,即保证操作中心可以得到所有用户的真实电力数据总和;匿名性需求,即保证用户在上传电力数据和获得光伏发电奖励时保持匿名。
NAKAMOTO[2]于2008 年在比特币论坛上提出区块链的概念,十年来区块链技术得到飞速发展,相关研究与应用呈爆发式增长态势,许多研究者从不同角度探讨了将区块链应用在电力系统上的意义。KUSHCH 等[3]分析了智能电网技术的发展前景、可再生能源成本降低的趋势以及智能计量的技术路线,提出开发基于区块链的解决方案以提高智能电网生态的总体安全性。MYLREA 等[4]探讨了将区块链以及智能合约应用于智能电网,进一步提升智能电网的弹性和安全性。区块链可以将信任商品化,并使自动化的智能合约根据预定义规则支持可审计的多方交易。WU 等[5]研究区块链技术在智能电网需求侧响应管理中的应用,并给出一个区块链被用来促进机器对机器(M2M)交互的实例。
本文基于Paillier 算法提出一个新的智能电网数据聚合和激励方案。利用同态Paillier 加密技术实现外包计算下的数据安全聚合,并通过区块链获得光伏发电奖励时电网用户和电网管理中心的双向匿名性和不可链接性。
随着智能电网的发展,越来越多的研究者开始关注智能电网中的数据聚合和激励。2012 年,LU等[6]提出一种隐私保护的智能电网通信聚合方案,采用超递增序列来构造多维数据,并采用同态Paillier 加密技术对结构化数据进行加密。一旦本地网关受到攻击而聚合错误的密文,运营中心并不能及时地发现,从而不能恢复出正确的聚合明文信息。2013 年,ROTTONDI 等[7]提出一种基于客户端网关的分布式数据聚合安全体系结构。2016 年,WANG等[8]提出平衡匿名性和可跟踪性的智能电网外包小规模数据线性聚合方案。该方案支持基于外包计算的多维数据线性聚合,但该方案中设置了可信第三方,用户的隐私并不能得到充分保障。2017 年,HE等[9]提出一种新的隐私保护数据聚合方案,利用Boneh-Goh-Nissim 公钥密码对抗内部攻击者且计算效率更高,但是在多维数据聚合上的表现并不理想。这方面的研究成果还有很多,但是抗内部攻击的多维数据聚合仍是亟需解决的问题。
因此,对于智能电网中的能源交易,研究者们做了大量的工作。2011 年,YANG 等[10]提出一种保密通信和精确的车联网(V2G)奖励架构,这是一种精确而公平的激励模式,V2G 网络的运营商为每个参与的用户提供每项服务奖励。考虑到V2G 网络的特殊性,他们首次尝试解决隐私问题。2015 年,WANG等[11]提出一种新的可跟踪隐私保护通信和精确奖励方案,但并不满足不可链接性。2018 年,AITZHAN等[12]通过区块链技术、多签名和匿名加密消息流实现了分布式能源交易系统的概念验证,使用户能够匿名协商能源价格,并安全地进行交易,但是该方案中仍然需要存在可信第三方。2019 年,DORRI 等[13]提出一个基于区块链的私有框架,使能源消费者能够以分布式的方式协商能源价格和交易能源,采用路由方法来转发协商流量,从而减少了相关开销,但并没有给出具体的算法。GAI 等[14]提出一种基于联盟链的方案来解决无限制交易的隐私泄露问题。该方法主要解决了智能电网中能源交易用户的隐私问题,并对卖家的能源销售分布进行筛选。
智能电网中的数据聚合和激励得到了众多研究者的关注,然而现有方案仍存在一些安全隐私问题。
定义一个在有限域Fq上的椭圆曲线E,其中q为一个素数。E(Fq) 由下式给出:E:y2=x3+ax+bmodq,其中,G为E(Fq) 素数阶l的一个生成元。离散对数问题(Discrete Logarithm Problem,DLP)和计算Diffie-Hellman问题(Calculation Diffie-Hellman Problem,CDHP)给出如下定义:
定义1(DLP)给定(G,G1)∈E(Fq),寻找使得G1=xG。
定义2(CDHP)给定(G,G1,G2)∈E(Fq)3,其中G1=xG,G2=yG,x,y未知,计算x、y、G。
选择一个双线性群对(G1,G2),G1、G2分别为素数阶p的一个循环加法群和循环乘法群,P是G1的一个生成元。令e:G1×G1→G2为一个具有以下性质的双线性映射。
Paillier 密码系统可以实现加法同态,在隐私保护方面得到了广泛的应用。加密系统由密钥生成、加密和解密3 种算法组成。
环签名是一种数字签名方案,最初由RIVEST等[15]提出。环签名是一种简化的群签名,环签名中只有环签名成员没有管理者,不需要环签名成员间的合作。由于环签名具有无条件匿名性和不可伪造性的特点,使其在隐秘性方面比一般的群签名更突出。而环签名的代表项目是Monero 区块链[16]。Monero 区块链是一种公有链,其交易由分布式共识机制同步,然后记录在区块链上。Monero 区块链使用环签名、环保密交易和随机地址来混淆所有交易的来源、金额和目的地。它集合了去中心化加密货币的所有优势,而没有任何隐私方面的缺陷。因发送和接收地址以及交易金额在默认情况下是混淆的,所以Monero 区块链上的交易不能链接到特定用户或真实身份。
在本文方案存在5 个实体,分别为电网管理中心(State Grid Management Center,SGMC)、云计算中心(Cloud Computation Center,CCC)、电 网用户(Ui)、智能电表(SMi)和Monero 区块链。
1)电网管理中心是整个智能电网的管理员,通过SMi为Ui提供电力保障,可以远程查询数据线性聚合信息进行统计和预测,制定分时电价来指导用户用电习惯,并通过区块链对自发电用户进行奖励。
2)云计算中心具有庞大的存储空间和计算资源来维护用户数据,负责聚合用户上传的电力数据。在聚合计算过程中,有可能会遗漏一些数据,或者受到外部攻击聚合一些错误数据。在聚合密文出错时,SGMC 可以及时发现并向其追责。SGMC 可能通过交易这些隐私数据来牟利。此外,由于在奖励自发电用户过程中,CCC 负责发放相关收据和凭证,有可能将奖励错误导向利益相关的区块链地址或者修改奖励金额。
3)默认电网用户Ui都已经安装了SMi,用户可以将自己随机选择的区块链地址写入SMi,以便接收奖励。
4)假设SMi基于可信硬件[17],诚实且不可篡改,并在固定的时间间隔将电力信息以密文形式发送给CCC。智能电表SMi对电网用户Ui不完全透明,相关电力数据和收据对Ui公开,但与其他实体协商产生的密钥和参数对Ui保密。
5)SGMC 通过区块链(本文为Monero 区块链)将奖励发送给Ui。Ui也可以检查它们的奖励是否已经由SGMC 发送。
安全是智能电网安全通信成功的关键。在安全模型方面,默认SGMC 是可信的,SMi诚实且不可篡改。本文方案必须满足以下3 个安全目标:
1)身份验证和数据完整性,CCC 验证SGMC 授权用户发送的密文数据,并且在传输过程中未被更改,即如果敌手伪造或者修改数据,则应及时检测到该恶意操作。同时只有正确的聚合密文才能被SGMC 接收,在此情况下才能完成对电网状况的监控和自发电奖励。
2)Ui的匿名性,在SMi上传数据的过程中,CCC无法通过SMi识别Ui的身份。在授权和奖励的过程中,SGMC 也无法识别Ui的身份。
3)SGMC 的匿名性,虽然Ui接收SGMC 的奖励,但Ui无法识别SGMC 在区块链上的地址。
根据上述安全需求,给出以下安全定义:
定义3(Ui的匿名性)在本文方案中,Ui是无条件匿名的,即使敌手的计算能力是无限的,也无法识别Ui的真实身份。
定义4(SGMC 的匿名性)假设SGMC 在发送奖励时只有一个地址,本文方案满足SGMC 的匿名性,需满足以下两个条件。
1)当SGMC 有n1个输出地址时,如果所有的输出地址都不属于敌手,那么识别SGMC 变化地址的概率不超过(1/n1)。如果n2个输出地址属于敌手,那么识别SGMC 变化地址的概率不超过[1/(n1-n2)]。
2)如果SGMC 计算有n个区块链地址的环签名,任何不属于该环的敌手猜测到SGMC 地址的概率应不大于1/n。如果该环中有n'个地址属于敌手,那么猜测到SGMC 地址的概率不大于(1/(n-n'))。
定义5(不可追踪性)对于发送到区块链上的每个交易请求,所有可能的发送方都是等概率的。
为体现方案设计的直观性,本文方案的具体架构如图1 所示。
图1 本文方案架构Fig.1 Architecture of the proposed scheme
3.3.1 初始化
本文方案采用两种类型的系统参数。一种类型参数是针对Monero 区块链,另一种用于授权、认证、加密、验证等。其生成步骤是使用与Monero 区块链同样的椭圆曲线参数。在有限域Fq上定义椭圆曲线E=-x2+y2=1+dx2y2,其中q=2255-19,d=-122 665/121666。选择 一个素数阶的生成元G,=2252+27 742 317 777 372 353 535 851937 790 883 648 493。此外,选择两个安全的密码散列函数H1:{0,1}*→Fl,H2:E(Fq)→E(Fq),用户Ui选择作为它的私钥。对应的公钥为(Ai,Bi),其中Ai=aiG,Bi=biG,并将(Ai,Bi)写入SMi。SGMC 选择作为它的私钥,对应的公钥为(X,X1),其中X=xG,X1=x1G。在这个阶段,SGMC 在区块链的地址X上存储了大量的Monero 币。
在公钥基础设施(Public Key Infrastructwe,PKI)中,给定安 全参数ϰ,ϰ1,首先通 过Gen(ϰ) 生 成(p,P,G1,G2,e),其中(G1,G2)为素数阶p的双线性群对,双线性映射为e:G1×G1→G2,P是G1的一个生成元。SGMC 选择一个随机数作为它的私钥并计算它的公钥Y=yP。CCC 选择一个随机数作为它的私钥并计算其公钥Z=zP。SGMC 计算Paillier 密码系统的公钥(n=p1q1,g)和对应的私钥(λ,μ),其中p1和q1是两个足够大的素数并满足|p1|=|q1|=ϰ1。假设聚合的总数据量不超过一个常数N,且有3 种类型的数据(φ1,φ2,φ3)需要在Paillier 密码系统中进行加密,其中φ1是用户的用电数据,φ2是用户的发电数据,φ3是一个基于哈希的消息验证码,且φi值始终小于一个足够大的常数d。SGMC 构造一个超递增序列α→=(a1=1,a2,a3),其中a2,a3是足够大的素数并满足|a2|,|a3|≥ϰ1,且然后计算(g1,g2,g3),其中此外,选择2 个安全的密码散列函数H和HMACk,其中H:{0,1}*→G1,HMACk:{0,1}*→Fd,一个对 称加密算法(E,D),如AES,与一个安全的签名/验证算法对(Sign,Verify)。
3.3.2 基于合同的授权
为了能够匿名上传电力数据和获得自发电奖励,SMi需要定期获得SGMC 授权。同时,SGMC 也需要收集SMi的状态信息,根据这些信息来创建合同Conti,其中包含SMi的状态信息、所属社区等。为了保护Ui的隐私,Conti中不包含Ui的身份信息。但是,(Ai,Bi)被包含到Conti中以获得授权。同时,为了进行安全交互,Ui和SGMC 共同协商一个会话密钥ki。SGMC 还初始化一个表格,其中列出了授权SMi的随机公钥(Ai,Bi)、认证期限和合同有效期限Ti。SGMC 执行以下2 个步骤以授权SMi:1)SGMC 初始化一个表格,为Conti生成签 名σi=yH(Conti),将(Ai,Bi)、认证期限和合同有效期限Ti添加到Tab;2)SGMC 将(Conti,σi,ki,g1,g2,g3)发送给SMi,将更新后的Tab 发送给CCC。
3.3.3 匿名认证
当SMi接收到(Conti,σi,ki,g1,g2,g3)后需要在认证期限内向CCC 完成认证。首先它选择一个随机数作为临时私钥,并计算Wi=wi P作为临时公钥,然后将(Conti,σi,Wi)发送给CCC。CCC 接收到(Conti,σi,Wi)后,执行以下3 个步骤验证授权的有效性。
1)在一段时间内,CCC 接收到很多(Conti,σi,Wi),其中i∈I,且|I|≤N。
2)CCC 选择随机数δi∈Fp,其中i∈I,之后验证是否成立。如果公式不成立,CCC 找出其中的无效对,并拒绝它们,然后继续执行后续步骤。
3)对于每 个i∈I,CCC 从Conti提取其公钥(Ai,Bi)。如果(Ai,Bi)属于Tab 并在认证期限内第一次提出认证请求,则将Wi添加到Tab 对应的(Ai,Bi);否则,CCC 拒绝SMi的认证请求。
3.3.4 数据上传
每隔固定的时间间隔智能电表SMi会自动收集这一时间段t内用户Ui的电力数据,并执行以下步骤:1)SMi选择一个随机数储存在本地并计算其中,di1为用户Ui在时间段t内的用电数据,di2为用户Ui在时间段t内的发电数据,di3=HMACki(Ai,Bi,t);2)SMi利用对称密钥ki加密得 到计算发送给CCC。
3.3.5 数据聚合
在时间段t内,智能电表发送一系列的密文数据,CCC 需要对这些数据验证后存储、存储后聚合。
3.3.6 验证和解密
SGMC 接收到CCC 发送的聚合密文后,执行以下步骤验证和解密密文。
算法1恢复聚合数据
3.3.7 匿名奖励
当合同有效期限Ti到期后,CCC 计算SMi在合同有效期限Ti内上传数据的聚合密文,并将其发送给SMi和SGMC 分别作为收据和凭证,其中|Ti|≤N×|t|。
当SMi接收到后,先验证的有效性。利用保存在本地的合同有效期限Ti内的用电和发电总量以及每次上传数据时生成的消息验证码和ri,t计算:
3.3.8 验证和接收奖励
当接收到SGMC 发送的(P0,…,Pnr,m,σ)后,区块链验证者执行以下步骤来验证σ的有效性:
定理1(正确性)如果SGMC 是诚实的,那么通过调用算法1,能够成功地将聚合密文恢复为明文。
证明令X3=M,则:
定理2(正确性)如果SGMC 和区块链验证者是诚实的,并且遵循所提出的方案,那么SGMC 的签名就可以通过区块链的验证。
证明在SGMC 签名的生成过程中,已知以下2 点。
定理3(不可伪造性)本文方案SMi来自SGMC的授权,来自CCC 的收据和凭证,SMi上传的密文数据,以及SGMC 的环签名都满足了不可伪造性。
证明为了获得高效的授权算法、收据和凭证生成算法,BONEH 等[18]提出在PKI 中的短签名方案,该方案是可证安全的。对于SMi上传的密文数据,利用KRAWEZYK 等[19]提出密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code,HMAC)来确保密文数据的不可伪造性。在利用Paillier 密码系统进行加密时,将HMAC 作为多维数据中的一种与电力数据一起加密。证明过程和KRAWEZYK 等人的证明过程类似。对于SGMC 的环签名,利用WANG 等[20]提出的签名方案,该方案是可证安全的,文献[20]已给出详细的证明过程。
定理4(机密性)SMi上传的单个密文数据只能由SMi和SGMC 解密,聚合密文数据只能由SGMC 解密。
定理5(Ui的匿名性)在本文方案中,Ui是无条件匿名的。即使敌手的计算能力是无限的,它也无法识别Ui的真实身份。
证明基于合同的认证阶段,SMi提交的Conti不包含Ui的身份信息。选定的公钥对(Ai,Bi)也和Ui的身份信息无关。在匿名认证阶段,SMi向CCC 提交(Conti,σi),而被提交的信息中心也不包含任何与Ui身份有关的信息。综上所述,本文方案不需要Ui的身份信息且满足Ui的匿名性。
定理6(SGMC 的匿名性)本文方案满足SGMC 的匿名性。
证明基于定理5,本文从以下两个部分来证明:
1)当SGMC 有n1个输出地址而所有的输出地址都不属于敌手时,由于哈希函数H1的性质,所有的一次 性公钥都是随机的。Ui对应的奖励被发送到随机区块链地址。因此,所有n1个输出地址对于敌手都是随机的,SGMC 的变化地址被识别的概率不超过(1/n1)。当n2个输出地址属于敌手时,其他(n1-n2)个输出地址对于敌手仍然是随机的。SGMC 的变化地址被识别的概率不超过(1/(n1-n2))。
2)在匿名奖励阶段本文方案利用环签名思想来实现SGMC 的匿名性。从最后发送给验证者的签名σ=(I,A,c0,…,cnr,r0,…,rnr) 中可以得知I=xs H2(Ps),ci,ri,i≠s是随机的。也是随机的。因此,如果SGMC 计算nr个区块链地址的环签名,SGMC 的匿名性可以被保证。
本文使用GMP(GMP-6.20)和PBC(pbc-0.5.14)的python 编程语言。本文实验是在使用Intel(R)CoreTMi7-8750H CPU(2.20 GHz)、4 GB 内存和运行unbuntu14.04 操作系统的个人计算机上进行的。为更好地对比系统各实体时间开销,采用单线程方式编写仿真程序。除上述仿真环境外,本文还利用Monero 区块链和对应的PKCs。对于PKI 中的PKCs,利用双线性群对(G1,G2),其中G1被定义在有限域是阶为160 bits 的超奇异椭圆曲线。同时,在Paillier 密码系统中,|ϰ1|=128 bits。本文方案整个流程的时间开销如图2 所示,合同期限内电网用户上传数据的次数j=5,环签名参与者数量nr+1=11,其中Total 对应系统执行一次方案中所有步骤时间开销包括SMi、SGMC、CCC和Monero 区块链的总和。从图2 可以看出,该系统计算成本与用户数量基本呈线性关系。
图2 系统时间开销Fig.2 Time cost of the system.
在匿名奖励阶段SGMC 和CCC 的时间开销对比如图3 所示。电网用户Ui的数量为100,环签名参与者数量nr+1=11。验证和接收奖励阶段区块链的时间开销如图4 所示。
图3 匿名奖励阶段SGMC 和CCC 的时间开销对比Fig.3 Time cost comparison of SGMC and CCC in anonymous reward
图4 验证和接收奖励阶段区块链的时间开销Fig.4 Time cost of blockchain in vertification and anonymous reward
2012 年,LU 等[6]提出基于超递增序列构造多维数据和同态Paillier 密码技术的智能电网通信聚合方案EPPA。2019 年,WANG 等[20]提出 基于椭圆曲线的V2G 网络匿名奖励机制BBARS。本文方案、EPPA 方案、BBARS 方案安全属性对比如表1 所示。从表1 可以看出,EPPA 方案可以在聚合器可信的前提下进行线性聚合,然而当聚合器受到攻击或自发修改密文数据时,EPPA 方案无法及时发现。本文方案基于半可信的第三方外包计算和储存,即使CCC受到攻击或自发修改密文数据,电网管理中心也可以及时发现并更正。
表1 EPPA、BBARS 和本文方案的安全属性对比Table 1 Security property comparison of EPPA,BBARS and the proposed schemes
BBARS、EPPA 和本文方案在数据聚合阶段加密和解密的时间开销对比如图5 所示。从图5 可以看出,BBARS、EPPA 与本文方案在数据聚合阶段的加密和解密时间开销均与用户数量呈线性相关。由于BBARS 方案基于椭圆曲线,在解密时需解决涉及离散对数问题,因此时间开销最大。本文方案与EPPA 方案都基于Paillier 同态加密算法,时间开销近似,本文方案在加密时涉及可聚合验证消息验证码的计算,因此时间开销略大于EPPA 方案。
图5 BBARS、EPPA 和本文方案加密和解密时间开销对比Fig.5 Time cost of encryption and decryption comparison of BBARS,EPPA and the proposed schemes
针对智能电网数据聚合和激励过程中存在的安全问题,本文提出一种基于Paillier 算法的智能电网数据聚合和激励方案。采用超递增序列设计多维同态加密算法,并加入可聚合验证消息以保证聚合数据的真实性和完整性。此外,通过引入Monero 区块链保护光伏发电奖励时用户和电网管理员的双向匿名性和不可链接性。分析结果表明,本文方案安全高效,且其计算开销与智能电网规模呈线性相关。后续将把可信计算技术引入云计算中心,进一步提高云计算的安全性和高效性。