具有隐私保护功能的可信电力集中竞价交易出清
2024-01-12李鹏黄文琦黄容生秦诗涵张锐
李鹏, 黄文琦, 黄容生, 秦诗涵, 张锐
(1.南方电网数字电网研究院有限公司, 广东, 广州 510663; 2.中国科学院, 信息工程研究所, 北京 100093)
0 引言
电力市场化作为实现电力行业资源优化配置和提高市场运行效率的重要手段,是我国新一轮电力体制改革深入推进的重要抓手[1-2]。2017年,电力市场化交易正式在全国范围内推行,其中交易方式分为“双边交易”和“集中竞价交易”。集中竞价交易是主要交易方式。它通过建立电力交易中心改变了电网企业垄断的市场结构,传统的发电计划也转化为购售电双方之间的电力交易计算,即电力交易出清[3]。作为集中竞价交易中最核心的环节,交易出清主要涉及交易申报、交易匹配及交易定价等3个阶段。
目前对电力交易出清的研究侧重于集中交易匹配及价格清算,并且形成了成熟的研究体系,但对交易申报阶段中申报价格的隐私性及申报信息的完整性保护研究较少。随着电力交易市场的进一步开放,面对复杂的交易规则及多样的交易类型,交易主体的安全及隐私需求日益凸显[4]。虽然理论上安全多方计算、全同态加密等技术可解决隐私保护的计算问题,但具体方案执行效率不高,难以适应实际中大规模、复杂模型隐私保护计算的要求。
基于以上分析,本文的工作和成果如下。
(1) 对交易出清的流程进行分解,明确具体需要隐私保护的对象,给出系统模型及严格的安全性定义。
(2) 通过多种隐私保护技术解决目前交易出清存在的申报价格隐私暴露、申报信息易被篡改等安全问题:①计算结合布谷鸟哈希算法实现申报方有效身份验证;②采用保序加密技术确保申报价格保密的同时,实现排序匹配;③采用数字时间戳技术实现申报时间唯一绑定及申报信息的完整性保护。
(3) 对方案给出了原型实现。实验结果表明,方案较好地兼顾了隐私保护及效率。
1 预备知识
本节介绍方案涉及的相关概念,包括布谷鸟哈希算法、保序加密、数字签名、时间戳等。
1.1 布谷鸟哈希算法
布谷鸟哈希算法[5]最早为了解决哈希冲突问题而提出,可用于集合成员证明,具有占用空间小、查询迅速等优点。布谷鸟哈希使用2个哈希表T1和T2,每个哈希表的容量为r,对应2个哈希函数h1、h2:U→{0,1,…,r-1},每个元素x∈S存储在T1的h1(x)位置或T2的h2(x)位置,但不会同时存储在T1和T2中。
布谷鸟哈希包括元素插入算法、查询算法及删除算法。
1) 元素插入算法Insert(x)。将元素x存储到布谷鸟哈希表中,具体过程如下。
(1) 计算h1(x)、h2(x),确定元素x在2个哈希表中待插入的位置。
(2) 若这2个位置均为空,则任选一个位置将x插入。
(3) 若只有一个位置为空,则插入该位置。
(4) 若2个位置均不为空,则任选一个位置踢出现存元素,将元素x插入该位置,对被踢出的元素按照步骤(1)~(4)重新插入。
(5) 若踢出元素的次数超过阈值,则认为该哈希表已存满,需重新哈希。若插入成功,则输出1,否则输出0。
2) 元素查询算法Lookup(x)。分别计算h1(x)和h2(x),并在哈希表T1和T2中找到这2个位置:若x在其中一个位置,则x∈S,输出1;否则x∉S,输出0。
3) 元素删除算法Delete(x)。在布谷鸟哈希表中先查询待删除元素的位置,再删除该元素。
1.2 保序加密
保序加密[6]是一种密文保留了明文原有顺序的加密技术,包含密钥生成算法、保序加密算法、解密算法。
1) 密钥生成算法Gen(λ)。输入安全参数λ,该算法输出私钥SK。
2) 保序加密算法Enc(SK,M)。输入私钥SK和明文M,该算法输出密文C。
3) 解密算法Dec(SK,C)。输入私钥SK和密文C,该算法输出明文M。
1.3 数字签名
数字签名[7]保护了数据的完整性及不可抵赖性,包括密钥生成算法、签名算法和验证算法。
1) 密钥生成算法Gen(λ)。输入安全参数,该算法输出签名公钥pk及签名私钥sk。
2) 签名算法Sign(sk,m)。输入签名私钥sk及待签名的消息m,该算法输出签名σ。
3) 验证算法Very(pk,m,σ)。输入签名公钥pk、消息m及签名σ,验证通过,则输出1,否则输出0。
1.4 时间戳
时间戳的作用是对信息产生的时间进行认证,通常基于数字签名。
时间戳生成算法TS.Gen(m,t),输入消息m及时间t,首先需要使用哈希算法生成消息摘要m′,然后使用数字签名算法对消息摘要及时间签名,输出的签名即为消息时间戳。
2 系统模型及安全性定义
本章介绍具有隐私保护功能的交易出清系统模型及安全性定义。
2.1 系统模型
具有隐私保护功能的交易出清系统模型如图1所示。由图1可知,模型包括交易中心、购电方、售电方三方,系统运行流程包含用户注册、交易申报、交易匹配以及交易定价等4个阶段。购电方及售电方主体在交易中心进行用户注册,由交易中心验证购/售电方交易身份的有效性;当交易中心发布交易公告后,购电方及售电方在规定的时间内向交易中心提交交易申报信息,由交易中心进行统一匹配,并确定匹配双方交易成交的价格;匹配成功的购/售电双方签订合同,交易达成,完成本次交易出清。
图1 系统模型图
2.2 安全性定义
具有隐私保护功能的可信电力集中竞价交易出清需满足以下安全性定义。
(1) 交易申报时的身份有效性
任何概率多项式时间(PPT)的敌手在任意访问交易中心公开的用户身份标识后,成功伪造出合法的用户身份标识并通过交易中心的身份有效性验证的概率是可忽略的。
(2) 交易成交前的申报价格机密性
在交易未达成前,任何PPT的敌手在任意访问交易中心公开的申报信息后,输出申报方申报价格的概率是可忽略的。
(3) 交易申报信息的完整性及申报时间的唯一绑定性
在交易未达成前,任何PPT的敌手在通过监听传输信道获得申报信息或任意访问交易中心公开的申报信息后,成功篡改申报时间及申报信息的概率是可忽略的。
3 具有隐私保护功能的交易出清方案
3.1 方案构造的基本思路
在用户注册阶段,购/售电方登录交易中心填报注册信息并上传申请资料,交易中心审核通过后,使用布谷鸟哈希算法将该用户ID写入数据库,完成注册。在交易申报阶段,购/售电方使用保序加密算法加密其申报价格,并对其申报信息添加时间戳。在交易匹配阶段,交易中心汇总申报信息,首先验证申报方的身份,然后校验其申报信息的真实可靠性,最后对双方的价格密文分别排序,按照高低匹配的方式进行匹配。在交易定价阶段,解密得到双方价格明文,并确定其成交价格,待双方确认后,完成本次交易出清。
本文提出的方案具体包括7个算法:用户注册算法、价格保序加密算法、申报信息时间戳算法、身份校验算法、申报信息校核算法、价格密文排序匹配算法、价格打开算法。算法包含的符号含义如表1所示。
表1 算法符号含义
3.2 用户注册阶段
购电方及售电方主体登录交易中心进行用户注册,填报注册信息并上传注册资料;交易中心受理并审核注册材料,首先判断用户ID是否已被注册,若是,则通知该用户选择新的ID;审核通过后调用用户注册算法,将用户ID写入数据库。用户注册算法具体描述如下。
算法1:用户注册算法输入:(ID)输出:CH.Insert(ID)运行结果调用CH.Insert(ID)算法,将用户ID插入到布谷鸟哈希表中,插入成功输出1;否则,输出0。
3.3 交易申报阶段
交易中心发布交易公告,设置交易申报截止时间。在交易中心完成用户注册的购/售电方可进行交易申报。
购/售电方确定其申报价格P,调用价格保序加密算法,生成自己的私钥skID,并加密申报价格生成密文C。价格保序加密算法具体描述如下。
算法2:价格保序加密算法输入:(λ,P)输出:(skope,C)1) 调用OPE.Gen(λ)算法,为所有申报方生成本次交易的保序加密私钥skope;2) 调用OPE.Enc(skope,P)算法,生成申报价格的保序加密密文C。
生成价格保序加密密文后,购/售电方调用申报信息时间戳算法。生成身份ID、价格密文C、申报电量、申报地址、时间段等其他信息Q的摘要M′;生成签名算法的公钥pk及私钥sk,对摘要M′和时间t签名得到σ。将最终申报消息(M=(ID,C,Q),M′,t,σ,pk)提交给交易中心。申报信息时间戳算法具体描述如下。
算法3:申报信息时间戳算法输入:(M=(ID,C,Q),t)输出:(M',pk,sk,σ)1) 调用TS.Hash(M)算法,生成申报信息的摘要M';2) 调用TS.Gen(1n)算法,生成签名算法的公钥pk及私钥sk;3) 调用TS.Sign(sk,M',t)算法,生成摘要M'和时间t的签名σ。
3.4 交易匹配阶段
交易申报阶段截至后,交易中心汇总购电方及售电方提交的交易申报信息,首先调用身份校核算法对其身份进行验证,确定其是否符合本次交易要求。身份校验算法具体描述如下。
算法4:身份校验算法输入:(ID)输出:CH.Lookup(ID)运行结果调用CH.Lookup(ID)算法,当输出为1时身份校验通过,可进行下一步申报信息校核。
身份校验通过后,交易中心调用申报信息校核算法确定申报时间是否与本次申报唯一绑定,校核其申报价格、申报电量等申报信息的完整性。申报信息校核算法具体描述如下。
算法5:申报信息校核算法输入:(M=(ID,C,Q),M',t,σ,pk)输出:TS.Very(pk,M',t,σ)运行结果1) 调用TS.Hash(M)算法,计算M的摘要值是否等于M';2) 调用TS.Very(pk,M',t,σ)算法,当输出为1时可进行下一步价格密文排序匹配。
申报信息校核通过后,交易中心调用价格密文排序匹配算法对申报价格的密文按照高低匹配的方式进行匹配。价格密文排序匹配算法具体描述如下。
算法6:价格密文排序匹配算法输入:购电方出价密文(Cb1,Cb2,…,Cbl),售电方出价密文(Cs1,Cs2,…,Csl)输出:排序匹配结果1) 通过保序加密技术,密文保留了明文原有的顺序,将购电方出价密文从高到低排序,将售电方出价密文从低到高排序;2) 按照高低匹配的方式,从最低售电方出价和最高购电方出价依次形成匹配,规定管电/购电双方价格相减大于等于零时匹配有效,直到双方出现最后一个有效匹配对为止。
3.5 交易定价阶段
完成匹配后,交易中心与匹配成功的购电方和售电方交互得到其保序加密私钥,调用价格公开算法将其价格密文解密成价格明文。对于未成功匹配的申报方,保留其申报价格的隐私性。价格打开算法具体描述如下。
算法7:价格打开算法输入:(Cbi,Csj输出:(Pbi,Psj)调用OPE.Dec算法,解密得到该成交对的价格明文Pbi、Psj。
交易中心得到购电方及售电方的价格明文后,选择合适的方式确定其成交价格,例如将匹配成交双方申报价格的均值作为其成交价格。待匹配成功的购/售电双方确认并签订合同后,完成本次交易出清。算法流程如图2所示。
图2 具有隐私保护功能的交易出清算法流程图
4 方案分析
本节从安全性和性能两方面对提出的具有隐私保护功能的交易出清方案进行分析,并与现有典型方案进行比较。
4.1 安全性分析
(1) 交易申报时的身份有效性验证。依赖布谷鸟哈希算法高效检索的性能实现申报方身份的有效性验证。
(2) 交易成交前的申报价格保密性。保序加密技术能够实现购/售电方申报价格的加密保护,保障敌手从价格密文恢复出价格明文的概率是可忽略的,并且价格密文保留了价格明文原有的顺序,可在交易定价时进行高低排序匹配。
(3) 交易申报信息的完整性及申报时间绑定的唯一性。数字时间戳技术将每一次申报时间与申报信息唯一绑定,并依赖哈希算法的抗碰撞性及数字签名技术的不可伪造性实现对申报信息的完整性保护。
4.2 性能评估
本文分别采用PR04[5]方案、LXY+16[8]方案及SM2数字签名算法实现对底层的布谷鸟哈希算法、保序加密、数字签名。实验环境为Intel(R) Core(TM) i5-1135G7@2.40 GHz,网络带宽为100 Mibit/s,软件实现语言为C++,测算方法为核心算法运行1000次并计算其平均运行时间。
本方案的7个核心算法运行一次的平均时间如表2所示。本方案在满足交易出清安全需求的同时,核心算法的实例化运行速度快,能够有效支撑一次集中竞价交易中申报信息的隐私及安全保护,并高效实现交易中心对价格密文的匹配,具备较高的实用性。
表2 核心算法平均运行时间 单位:ms
4.3 方案对比
本方案与文献[9]方案的安全性和性能对比如表3所示。在相同环境下的实验结果表明,相比于现有典型方案,本方案更全面地考虑了交易出清各环节的隐私保护需求,实现了交易申报前的用户身份有效性验证、交易成交前的申报价格保密性、申报信息的完整性以及申报时间唯一绑定,取得了较高的实现效率,更适用于电力集中竞价交易模式下的大规模使用。
表3 方案安全性和性能对比
5 总结
本文围绕具有隐私保护功能的可信电力集中竞价交易出清问题进行了研究,给出了系统模型和安全性定义,并且通过多种隐私保护技术解决目前交易出清存在的申报价格隐私暴露、申报信息易被篡改等安全问题。实验结果表明,本文提出的方案较好地兼顾了隐私保护及效率。