分布式微电网直接交易系统及其安全协议

2020-05-16 06:33陈兰兰左黎明侯欣悦
计算机应用与软件 2020年5期
关键词:交易中心攻击者报价

邱 帆 陈兰兰 左黎明 侯欣悦

1(国网江西省电力公司吉安电力科学研究院 江西 吉安 343009)2(华东交通大学理学院 江西 南昌 330013)3(华东交通大学信息工程学院 江西 南昌 330013)

0 引 言

随着电力系统的市场化发展,新型能源、智能电网等新概念不断涌现,各种可再生能源、新型储能系统、智能电力装备等趋于成熟与应用,传统的大电网逐渐向分布式微电网[1]转变。随着电力市场化改革政策[2-3]不断深化,微电网或拥有DG 的用户允许作为售电方进行电力市场交易,电力消费者或许成为消费、生产一体的电力市场参与者,而不再是单一的消费者角色。2017年10月31日,国家能源局联合国家发展改革委发布了《关于开展分布式发电市场化交易试点的通知》[4],明确了分布式发电市场的交易机制,允许DG项目与电力购电用户进行电力直接交易,并在接入点上一级变压器供电范围内向就近电网企业缴纳“过网费”。然而,DG和用户的电力直接交易具有规模小和分散化的特点[5],呈现多买多卖的局面,由于双方还未建立成熟的价值流通渠道,故难以进行电力直接交易。因此建立成本低、安全性高的微电网市场交易模式是首要考虑。目前建立的交易模式存在交易信息被篡改的风险,对交易方的利益和交易信息安全造成直接威胁,因此创建一个安全性高的微电网交易管理模式具有重要价值和实际意义。

目前,分布式微电网的交易机制和模式的研究与应用仍在起步阶段,但已有一些初步成果。文献[6]建立了多方参与的一对多、多对多交易情况下的合作博弈模型,提出了一种合作交易模式。文献[7]探讨了区块链与分布式发电市场化交易的对照关系,分析了区块链技术在分布式发电中的交易模式,并指出现有的相关研究存在缺乏对交易效率的定量分析等问题。文献[8]建立了分布式能源交易市场的信用评价指标,并提出了一种运用区块链技术的分布式能源交易信用管理策略,使得守信市场主体获得更多利益。文献[9]概括了国外主要的分布式交易机制以及发展现状,并探讨了中国未来分布式发电市场化交易的发展。文献[10]提出了基于多智能体的微网群内的电力交易策略,包括制定统一出清价方案、奖惩制度的电价方案、微网售电购电策略。文献[11]提出了一种适用于多能源微电网的最优投标策略及市场机制。文献[12]提出了一种由间歇分布式发电、存储、可调度发电等组成的微电网市场最优竞价策略,该策略基于混合随机/鲁棒优化模型。文献[13]基于博弈论模型设计了一种分布式能源交易机制,该研究对微电网之间的能源交易提供了激励作用。文献[14-18]对区块链技术在微电网交易的应用进行了研究。然而,上述关于微电网交易的研究绝大部分偏向于交易策略分析或简单应用方案,缺少对交易主体在交易信息传递时的数据安全研究。在数据传递过程中,若存在攻击者截获交易数据并对其进行恶意篡改,将导致交易主体获取的信息不对称而直接损害其利益,影响交易市场的公平性与可靠性。

为避免分布式微电网电力直接交易过程中出现信息篡改和伪造等信息安全问题[19],本文提出了一个安全的分布式微电网交易系统,任何参与交易的DG或用户都需要预先在系统中进行注册,确认其真实身份,并为每次交易信息传递设计基于文献[20]签名方案的安全协议,包括报价协议和交易结算证明协议,分别用于DG或用户提交报价信息和报价匹配成功后交易结算的数据安全,实现交易信息在传递过程中的隐私保护。

1 分布式微电网交易系统原理

1.1 总体架构

本文研究的微电网电力交易系统总体架构如图1所示,主要由多个DG和用户、电力交易中心组成。其中电力交易中心包含注册中心,如图2所示,注册中心主要由注册模块和查询模块组成,DG和用户在交易前需要在注册模块进行注册,并可以在查询模块查询自己及其他注册者的部分信息。注册完成后,在每个交易周期,DG向电力交易中心提交售电报价s_pri、售电量s_ele,用户向交易中心提交购电报价p_pri、购电量p_ele。交易中心根据双方报价按照系统定义的报价匹配机制进行匹配,并向外公布交易信息,包括当前最优卖价、最优买价、成交价。匹配成功的交易双方和电力交易中心三方签署交易结算证明,包括成交售电量t_ele和成交购电费用t_pri,作为交易凭证,并由三方保管。参数说明如表1所示。

图1 微电网电力交易系统总体架构

图2 注册中心

表1 参数说明

1.2 报价匹配机制

本文提出的电力交易报价匹配机制参与对象包括DG生产者、DG独立运营商以及普通用户,由于可再生能源的变化性和负荷程度预测准确性[21],设定交易周期为1小时。该报价匹配机制按照“价格优先,时间优先”的原则[21]对买卖双方进行排序。如图3所示,对卖方的报价从低到高排序,而对买方的报价从高到低进行排序,在报价相同的情况下,按提交时间先后进行排序。其中,最优卖价为卖方最低报价,最优买价为买方最高报价,当最优买价大于最优卖价时,即可进行交易,报价最低的卖方和报价最高的买方进行匹配,成交价为买卖双方的均价。以此类推,直到最优买价小于最优卖价,则完成一轮交易,每轮交易至少完成一次匹配和交易。

图3 报价匹配机制

在交易中,参与方可以查看成交价、当前最优卖价和最优买价信息,并根据市场信息调整自身报价进行下一轮交易,直到交易时间截止或者交易电量全部匹配成功。如果交易截止时,买卖双方还未匹配成功,则通过大电网进行购电或售电。

分布式微电网直接交易系统的多方交互环节包括交易双方报价提交、交易信息公开、交易结算证明。为防止信息在交互过程中被恶意篡改和伪造,导致用户获取的信息不对称,影响交易的公平公正,本文采用文献[20]提出的多重短签名方案对信息进行保护,并基于该方案设计了两种安全交互协议:报价协议和交易结算证明协议,以此来提高数据在交互过程中的安全性和真实性。

2 短签名方案设计

2.1 相关基础

定义1 双线性对:设安全参数k,G1和G2分别为q阶循环加法群和乘法群,其中q为一个k-bit素数,设P为G1的生成元,则称映射e:G1×G1→G2为双线性对,若满足以下三条性质:

(2) 非退化性:e(P,P)≠1;

(3) 易计算性:∀Q,R∈G1,存在有效算法计算e(Q,R)。

2.2 文献[20]的短签名方案

文献[20]提出的适用于分布式审批工作流的多重短签名方案在安全性和签名性能上都具有优势,且适用于分布式系统,故满足分布式微电网交易系统的安全和性能要求。方案主要包括系统初始化、密钥生成与注入、多重签名、多重签名验证和授权签名验证五个算法组成,具体描述如下:

3) 多重签名:对于M个用户L={U1,U2,…,UM}的多重签名,它们的身份集合为LID={ID1ID2,…,IDM},具体签名步骤如下:

(1) 首先用户U1对消息m进行签名,计算h=H2(m),S1=ID1xID1h,再将身份ID1、消息m、部分签名S1发送给下一个用户U2。

(2) 用户U2收到信息后,先验证S1的有效性,再进行签名。过程如下:

① 计算h=H2(m)。

② 验证e(S1,P)=e(h,ID1yID1)是否成立,如果不成立,则验证失败,并返回“FALSE”,否则U2继续签名。

③ 计算S2=S1+ID2xID2h,将身份ID1、身份ID2、消息m以及部分签名S2发送给下一个用户U3。

(3) 用户Ui(i=3,4,…,M)收到第i-1个用户Ui-1发送的身份ID1,ID2,…,IDi-1、消息m以及部分签名Si-1后,先验证Si-1的有效性,再进行签名。过程如下:

① 计算h=H2(m)。

③ 计算Si=Si-1+IDixIDih,则Si为i个用户U1,U2,…,Ui对消息m的部分签名。当i=M时,得到的签名SM为M个用户U1,U2,…,UM对消息m的多重短签名。

4) 多重签名验证:验证者对给定消息m的多重签名SM进行验证。过程如下:

① 计算h=H2(m)。

签名算法正确性验证如下:

5) 授权签名验证:KGC向验证者公开身份为IDi的用户对应的授权信息Qi=H1(IDi,KIDi,s),任何人都可以通过用户的身份ID和Q验证签名。验证如下等式是否成立,如果成立,则签名有效,返回“TRUE”,否则返回“FALSE”。

3 安全协议及安全性分析

为提高系统在交易过程中信息来源的真实性、可靠性和不可抵赖性,本文基于文献[20]签名方案分别设计了报价协议和交易结算证明协议两种安全协议,并进行了安全性分析。两种协议均加入时戳新鲜因子,用于抵抗重放攻击。

3.1 协议设计

在两种协议实现交互之前,DG和用户均需要在注册中心的注册模块进行密钥注册,即为注册者分配身份ID并按照文献[20]签名方案的密钥生成算法生成相应的密钥对,再通过安全的方式将生成的密钥对发给注册者,注册者还可以在注册中心的查询模块查看其他注册者以及电力交易中心的的公钥及授权信息。

3.1.1 报价协议

报价协议用于实现DG和用户分别向电力交易中心提交报价信息时数据的保护,图4所示为DG或用户与电力交易中心参与的报价协议交互图。

图4 报价协议交互图

假设DG、用户的身份分别为IDDG和IDU,具体交互流程如下:

(1) DG或用户→电力交易中心:基于文献[20]的签名方案,并引入时戳T,DG对售电报价s_pri、售电量s_ele和T进行签名,得到签名sig(IDDG,s_pri,s_ele,T),用户对提交的购电报价p_pri、购电量p_ele和T进行签名,得到签名sig(IDU,p_pri,p_ele,T),DG或用户分别将(IDDG,s_pri,s_ele,T,sig(IDDG,s_pri,s_ele,T))或(IDU,p_pri,p_ele,T,sig(IDU,p_pri,p_ele,T))发送至电力交易中心。

(2) 电力交易中心验证签名:电力交易中心对接收的信息进行验证,首先解析出签名信息sig(IDDG,s_pri,s_ele,T)或sig(IDU,p_pri,p_ele,T),再采用文献[20]方案的签名验证算法验证签名,同时验证时戳的有效性,若验证成功,则输出“TRUE”,否则输出“FALSE”。

3.1.2 交易结算证明协议

交易结算证明协议用于对报价匹配成功的DG和用户的交易凭证进行保护,该交易凭证信息包括DG售电量和用户购电费用信息,并由匹配成功的DG和用户以及电力交易中心共同签名。该协议采用文献[20]的多重签名方案。图5所示为DG或用户与电力交易中心参与的交易结算证明协议交互图。

图5 交易结算证明协议交互图

假设电力交易中心、DG和用户的身份分别为IDEC、IDDG、IDU,具体交互流程如下:

(1) 电力交易中心→DG:电力交易中心创建交易凭证,并引入时戳T对其签名,即生成成交购电费用t_pri、成交售电量t_ele和T的部分签名sig1(IDEC,t_pri,t_ele,T),再将(IDEC,t_pri,t_ele,T,sig1(IDEC,t_pri,t_ele,T))发给匹配成功的DG。

(2) DG→电力交易中心:DG对接收的信息进行验证,首先解析出签名信息sig1(IDEC,t_pri,t_ele,T),验证签名和时戳的有效性,如果验证失败,输出“FALSE”,否则生成部分签名sig2(IDEC,IDDG,t_pri,t_ele,T),再将(IDEC,IDDG,t_pri,t_ele,T,sig2(IDEC,IDDG,t_pri,t_ele,T))发送至电力交易中心。

(3) 电力交易中心→用户:电力交易中心对接收的信息进行验证,首先解析出签名信息sig2(IDEC,IDDG,t_pri,t_ele,T),验证签名和时戳有效性,如果验证失败,输出“FALSE”,否则将(IDEC,IDDG,t_pri,t_ele,T,sig2(IDEC,IDDG,t_pri,t_ele,T))转发给匹配成功的用户。

(4) 用户→电力交易中心:用户对接收的信息进行验证,首先解析出签名信息sig2(IDEC,IDDG,t_pri,t_ele,T),验证签名和时戳有效性,如果验证失败,输出“FALSE”,否则生成最终的多重签名sig3(IDEC,IDDG,IDU,t_pri,t_ele,T),再将(IDEC,IDDG,IDU,t_pri,t_ele,T,sig3(IDEC,IDDG,IDU,t_pri,t_ele,T))发送至电力交易中心。

(5) 电力交易中心验证并公布交易凭证:电力交易中心对接收的信息进行验证,首先解析出签名信息sig3(IDEC,IDDG,IDU,t_pri,t_ele,T),再通过验证算法验证签名,同时验证时戳的有效性,若验证失败,输出“FALSE”,否则确定匹配成功的DG和用户最终的交易凭证为(IDEC,IDDG,IDU,t_pri,t_ele,T,sig3(IDEC,IDDG,IDU,t_pri,t_ele,T)),并公开保存在系统中,供其他注册者查询和验证。

3.2 协议的安全性分析

(1) 防篡改攻击。设计的报价协议和交易结算证明协议对交互的数据进行签名,交互中的验证方在收到数据后,进行签名验证,任何通过截获交互数据的攻击者如果篡改了数据,都无法验证通过,因此该协议可以抵御篡改攻击。攻击者对于DG与电力交易中心的报价协议的篡改攻击过程与结果如图6所示。攻击者截获DG的报价信息m,并篡改m,将篡改后的消息和原签名发送给电力交易中心。电力交易中心对接收的消息和签名进行验证,由于消息被篡改,故验证失败。

图6 攻击者对于DG与电力交易中心的报价协议的篡改攻击

(2) 抗重放攻击。设计的两种协议都引入了时戳新鲜因子,验证方在收到数据后,在验证签名的同时验证时戳的新鲜性,任何攻击者若使用之前截获的交互数据进行冒充,都无法通过重放再次通过验证,因此该协议可以抵御重放攻击。攻击者对于DG与电力交易中心的报价协议的重放攻击过程如图7所示。攻击者预先记录了DG先前的报价信息和签名。攻击者将先前的报价信息m′,T′和签名发送给电力交易中心。电力交易中心对接收的消息和签名进行验证,由于时戳已经过期,故验证失败。

图7 攻击者对于DG与电力交易中心的报价协议的重放攻击

(3) 抗存在性伪造攻击。设计的两种协议都采用文献[20]的签名方案,该方案在适应性选择消息攻击下是抗存在性伪造的,而本协议中每次交互时数据传递都是单向的,且只有一次交互,签名方案的安全性可以保证协议的安全性。因此,本文提出的报价协议和交易结算证明协议可以抵抗存在性伪造攻击,签名方案安全性分析的形式化证明见文献[20]。

4 实验仿真

在Windows 7 64 位操作系统的 Microsoft Visual Studio 2012 开发平台下,采用斯坦福BONEH等基于C语言开发的PBC库[22]实现本文提出的报价协议。由于DG和用户分别与电力交易中心交互的过程相同,仅交互数据不同,故本实验只实现DG与电力交易中心之间的交互。

(1) DG生成签名。DG基于文献[20]签名方案对报价信息进行签名,实验结果如图8所示,可见签名耗时为0.048秒。

图8 DG签名实验结果

实验仿真核心代码如下:

//DG签名

//m为DG报价信息

char m[256]="售电报价:0.6元/度,售电量:500度";

printf("DG报价信息为: {%s} ",m);

element_init_G1(h,pairing);

//哈希函数H2

element_init_Zr(d1,pairing);

element_init_G1(S1,pairing);

//DG签名

//计算h

element_from_hash(h,m,strlen(m));

//生成签名S1=ID1×X1×h

element_mul(d1,ID1,X1);

element_mul(S1,d1,h);

element_printf("DG生成签名为: %B ", S1);

(2) 电力交易中心验证签名。电力交易中心对接收的DG报价信息采用文献[20]验证算法进行验证,实验结果如图9所示,可见验证签名成功,耗时为0.079秒,运行效率较高。

图9 电力交易中心验证签名实验结果

实验仿真核心代码如下:

//电力交易中心验证签名

//计算h

element_from_hash(h,m,strlen(m));

element_t left1,right1,temp1;

element_init_GT(left1,pairing);

element_init_GT(right1,pairing);

element_init_G1(temp1,pairing);

//等式左边e(S1,P)

element_pairing(left1,S1,P);

//等式右边e(h,ID1×Y1)

element_mul(temp1,ID1,Y1);

//ID1×Y1

element_pairing(right1,h,temp1);

// 左右比较

if (element_cmp(right1, left1))

//验证失败

printf("验证结果:FALSE ");

else

//验证成功

printf("验证结果:TRUE ");

针对不同的报价信息进行反复多次实验,验证结果均为成功,且每次交互消耗时间较少,效率较高,部分实验结果如图10所示。

图10 多次交互部分实验结果

5 结 语

本文针对分布式微电网电力交易信息传递过程存在的信息篡改问题,提出一个分布式微电网交易系统。该系统要求参与交易的用户必须在系统中进行注册,并基于文献[20]的签名方案针对报价和交易结算过程设计了两种安全协议。对设计的协议进行了安全性分析,表明其能够抵抗消息篡改攻击、重放攻击和存在性伪造攻击,能够保护DG或用户提交报价信息和报价匹配成功后交易结算的数据安全。最后对报价协议进行了实验仿真,结果表明该协议具有较高的运行效率和良好的性能。本文仅研究了某一个交易时刻的交互安全,下一步将针对整个交易周期进行研究。

猜你喜欢
交易中心攻击者报价
基于贝叶斯博弈的防御资源调配模型研究
以市场机制推动自愿减排 全国自愿减排交易中心建设有序推进
正面迎接批判
正面迎接批判
浅谈对建设工程交易中心发展方向的思考
加想建北美首个人民币交易中心
报价