李鵬, 黃文琦, 黃容生, 秦詩(shī)涵, 張銳
(1.南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司, 廣東, 廣州 510663; 2.中國(guó)科學(xué)院, 信息工程研究所, 北京 100093)
電力市場(chǎng)化作為實(shí)現(xiàn)電力行業(yè)資源優(yōu)化配置和提高市場(chǎng)運(yùn)行效率的重要手段,是我國(guó)新一輪電力體制改革深入推進(jìn)的重要抓手[1-2]。2017年,電力市場(chǎng)化交易正式在全國(guó)范圍內(nèi)推行,其中交易方式分為“雙邊交易”和“集中競(jìng)價(jià)交易”。集中競(jìng)價(jià)交易是主要交易方式。它通過(guò)建立電力交易中心改變了電網(wǎng)企業(yè)壟斷的市場(chǎng)結(jié)構(gòu),傳統(tǒng)的發(fā)電計(jì)劃也轉(zhuǎn)化為購(gòu)售電雙方之間的電力交易計(jì)算,即電力交易出清[3]。作為集中競(jìng)價(jià)交易中最核心的環(huán)節(jié),交易出清主要涉及交易申報(bào)、交易匹配及交易定價(jià)等3個(gè)階段。
目前對(duì)電力交易出清的研究側(cè)重于集中交易匹配及價(jià)格清算,并且形成了成熟的研究體系,但對(duì)交易申報(bào)階段中申報(bào)價(jià)格的隱私性及申報(bào)信息的完整性保護(hù)研究較少。隨著電力交易市場(chǎng)的進(jìn)一步開放,面對(duì)復(fù)雜的交易規(guī)則及多樣的交易類型,交易主體的安全及隱私需求日益凸顯[4]。雖然理論上安全多方計(jì)算、全同態(tài)加密等技術(shù)可解決隱私保護(hù)的計(jì)算問(wèn)題,但具體方案執(zhí)行效率不高,難以適應(yīng)實(shí)際中大規(guī)模、復(fù)雜模型隱私保護(hù)計(jì)算的要求。
基于以上分析,本文的工作和成果如下。
(1) 對(duì)交易出清的流程進(jìn)行分解,明確具體需要隱私保護(hù)的對(duì)象,給出系統(tǒng)模型及嚴(yán)格的安全性定義。
(2) 通過(guò)多種隱私保護(hù)技術(shù)解決目前交易出清存在的申報(bào)價(jià)格隱私暴露、申報(bào)信息易被篡改等安全問(wèn)題:①計(jì)算結(jié)合布谷鳥哈希算法實(shí)現(xiàn)申報(bào)方有效身份驗(yàn)證;②采用保序加密技術(shù)確保申報(bào)價(jià)格保密的同時(shí),實(shí)現(xiàn)排序匹配;③采用數(shù)字時(shí)間戳技術(shù)實(shí)現(xiàn)申報(bào)時(shí)間唯一綁定及申報(bào)信息的完整性保護(hù)。
(3) 對(duì)方案給出了原型實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明,方案較好地兼顧了隱私保護(hù)及效率。
本節(jié)介紹方案涉及的相關(guān)概念,包括布谷鳥哈希算法、保序加密、數(shù)字簽名、時(shí)間戳等。
布谷鳥哈希算法[5]最早為了解決哈希沖突問(wèn)題而提出,可用于集合成員證明,具有占用空間小、查詢迅速等優(yōu)點(diǎn)。布谷鳥哈希使用2個(gè)哈希表T1和T2,每個(gè)哈希表的容量為r,對(duì)應(yīng)2個(gè)哈希函數(shù)h1、h2:U→{0,1,…,r-1},每個(gè)元素x∈S存儲(chǔ)在T1的h1(x)位置或T2的h2(x)位置,但不會(huì)同時(shí)存儲(chǔ)在T1和T2中。
布谷鳥哈希包括元素插入算法、查詢算法及刪除算法。
1) 元素插入算法Insert(x)。將元素x存儲(chǔ)到布谷鳥哈希表中,具體過(guò)程如下。
(1) 計(jì)算h1(x)、h2(x),確定元素x在2個(gè)哈希表中待插入的位置。
(2) 若這2個(gè)位置均為空,則任選一個(gè)位置將x插入。
(3) 若只有一個(gè)位置為空,則插入該位置。
(4) 若2個(gè)位置均不為空,則任選一個(gè)位置踢出現(xiàn)存元素,將元素x插入該位置,對(duì)被踢出的元素按照步驟(1)~(4)重新插入。
(5) 若踢出元素的次數(shù)超過(guò)閾值,則認(rèn)為該哈希表已存滿,需重新哈希。若插入成功,則輸出1,否則輸出0。
2) 元素查詢算法Lookup(x)。分別計(jì)算h1(x)和h2(x),并在哈希表T1和T2中找到這2個(gè)位置:若x在其中一個(gè)位置,則x∈S,輸出1;否則x?S,輸出0。
3) 元素刪除算法Delete(x)。在布谷鳥哈希表中先查詢待刪除元素的位置,再刪除該元素。
保序加密[6]是一種密文保留了明文原有順序的加密技術(shù),包含密鑰生成算法、保序加密算法、解密算法。
1) 密鑰生成算法Gen(λ)。輸入安全參數(shù)λ,該算法輸出私鑰SK。
2) 保序加密算法Enc(SK,M)。輸入私鑰SK和明文M,該算法輸出密文C。
3) 解密算法Dec(SK,C)。輸入私鑰SK和密文C,該算法輸出明文M。
數(shù)字簽名[7]保護(hù)了數(shù)據(jù)的完整性及不可抵賴性,包括密鑰生成算法、簽名算法和驗(yàn)證算法。
1) 密鑰生成算法Gen(λ)。輸入安全參數(shù),該算法輸出簽名公鑰pk及簽名私鑰sk。
2) 簽名算法Sign(sk,m)。輸入簽名私鑰sk及待簽名的消息m,該算法輸出簽名σ。
3) 驗(yàn)證算法Very(pk,m,σ)。輸入簽名公鑰pk、消息m及簽名σ,驗(yàn)證通過(guò),則輸出1,否則輸出0。
時(shí)間戳的作用是對(duì)信息產(chǎn)生的時(shí)間進(jìn)行認(rèn)證,通?;跀?shù)字簽名。
時(shí)間戳生成算法TS.Gen(m,t),輸入消息m及時(shí)間t,首先需要使用哈希算法生成消息摘要m′,然后使用數(shù)字簽名算法對(duì)消息摘要及時(shí)間簽名,輸出的簽名即為消息時(shí)間戳。
本章介紹具有隱私保護(hù)功能的交易出清系統(tǒng)模型及安全性定義。
具有隱私保護(hù)功能的交易出清系統(tǒng)模型如圖1所示。由圖1可知,模型包括交易中心、購(gòu)電方、售電方三方,系統(tǒng)運(yùn)行流程包含用戶注冊(cè)、交易申報(bào)、交易匹配以及交易定價(jià)等4個(gè)階段。購(gòu)電方及售電方主體在交易中心進(jìn)行用戶注冊(cè),由交易中心驗(yàn)證購(gòu)/售電方交易身份的有效性;當(dāng)交易中心發(fā)布交易公告后,購(gòu)電方及售電方在規(guī)定的時(shí)間內(nèi)向交易中心提交交易申報(bào)信息,由交易中心進(jìn)行統(tǒng)一匹配,并確定匹配雙方交易成交的價(jià)格;匹配成功的購(gòu)/售電雙方簽訂合同,交易達(dá)成,完成本次交易出清。
圖1 系統(tǒng)模型圖
具有隱私保護(hù)功能的可信電力集中競(jìng)價(jià)交易出清需滿足以下安全性定義。
(1) 交易申報(bào)時(shí)的身份有效性
任何概率多項(xiàng)式時(shí)間(PPT)的敵手在任意訪問(wèn)交易中心公開的用戶身份標(biāo)識(shí)后,成功偽造出合法的用戶身份標(biāo)識(shí)并通過(guò)交易中心的身份有效性驗(yàn)證的概率是可忽略的。
(2) 交易成交前的申報(bào)價(jià)格機(jī)密性
在交易未達(dá)成前,任何PPT的敵手在任意訪問(wèn)交易中心公開的申報(bào)信息后,輸出申報(bào)方申報(bào)價(jià)格的概率是可忽略的。
(3) 交易申報(bào)信息的完整性及申報(bào)時(shí)間的唯一綁定性
在交易未達(dá)成前,任何PPT的敵手在通過(guò)監(jiān)聽傳輸信道獲得申報(bào)信息或任意訪問(wèn)交易中心公開的申報(bào)信息后,成功篡改申報(bào)時(shí)間及申報(bào)信息的概率是可忽略的。
在用戶注冊(cè)階段,購(gòu)/售電方登錄交易中心填報(bào)注冊(cè)信息并上傳申請(qǐng)資料,交易中心審核通過(guò)后,使用布谷鳥哈希算法將該用戶ID寫入數(shù)據(jù)庫(kù),完成注冊(cè)。在交易申報(bào)階段,購(gòu)/售電方使用保序加密算法加密其申報(bào)價(jià)格,并對(duì)其申報(bào)信息添加時(shí)間戳。在交易匹配階段,交易中心匯總申報(bào)信息,首先驗(yàn)證申報(bào)方的身份,然后校驗(yàn)其申報(bào)信息的真實(shí)可靠性,最后對(duì)雙方的價(jià)格密文分別排序,按照高低匹配的方式進(jìn)行匹配。在交易定價(jià)階段,解密得到雙方價(jià)格明文,并確定其成交價(jià)格,待雙方確認(rèn)后,完成本次交易出清。
本文提出的方案具體包括7個(gè)算法:用戶注冊(cè)算法、價(jià)格保序加密算法、申報(bào)信息時(shí)間戳算法、身份校驗(yàn)算法、申報(bào)信息校核算法、價(jià)格密文排序匹配算法、價(jià)格打開算法。算法包含的符號(hào)含義如表1所示。
表1 算法符號(hào)含義
購(gòu)電方及售電方主體登錄交易中心進(jìn)行用戶注冊(cè),填報(bào)注冊(cè)信息并上傳注冊(cè)資料;交易中心受理并審核注冊(cè)材料,首先判斷用戶ID是否已被注冊(cè),若是,則通知該用戶選擇新的ID;審核通過(guò)后調(diào)用用戶注冊(cè)算法,將用戶ID寫入數(shù)據(jù)庫(kù)。用戶注冊(cè)算法具體描述如下。
算法1:用戶注冊(cè)算法輸入:(ID)輸出:CH.Insert(ID)運(yùn)行結(jié)果調(diào)用CH.Insert(ID)算法,將用戶ID插入到布谷鳥哈希表中,插入成功輸出1;否則,輸出0。
交易中心發(fā)布交易公告,設(shè)置交易申報(bào)截止時(shí)間。在交易中心完成用戶注冊(cè)的購(gòu)/售電方可進(jìn)行交易申報(bào)。
購(gòu)/售電方確定其申報(bào)價(jià)格P,調(diào)用價(jià)格保序加密算法,生成自己的私鑰skID,并加密申報(bào)價(jià)格生成密文C。價(jià)格保序加密算法具體描述如下。
算法2:價(jià)格保序加密算法輸入:(λ,P)輸出:(skope,C)1) 調(diào)用OPE.Gen(λ)算法,為所有申報(bào)方生成本次交易的保序加密私鑰skope;2) 調(diào)用OPE.Enc(skope,P)算法,生成申報(bào)價(jià)格的保序加密密文C。
生成價(jià)格保序加密密文后,購(gòu)/售電方調(diào)用申報(bào)信息時(shí)間戳算法。生成身份ID、價(jià)格密文C、申報(bào)電量、申報(bào)地址、時(shí)間段等其他信息Q的摘要M′;生成簽名算法的公鑰pk及私鑰sk,對(duì)摘要M′和時(shí)間t簽名得到σ。將最終申報(bào)消息(M=(ID,C,Q),M′,t,σ,pk)提交給交易中心。申報(bào)信息時(shí)間戳算法具體描述如下。
算法3:申報(bào)信息時(shí)間戳算法輸入:(M=(ID,C,Q),t)輸出:(M',pk,sk,σ)1) 調(diào)用TS.Hash(M)算法,生成申報(bào)信息的摘要M';2) 調(diào)用TS.Gen(1n)算法,生成簽名算法的公鑰pk及私鑰sk;3) 調(diào)用TS.Sign(sk,M',t)算法,生成摘要M'和時(shí)間t的簽名σ。
交易申報(bào)階段截至后,交易中心匯總購(gòu)電方及售電方提交的交易申報(bào)信息,首先調(diào)用身份校核算法對(duì)其身份進(jìn)行驗(yàn)證,確定其是否符合本次交易要求。身份校驗(yàn)算法具體描述如下。
算法4:身份校驗(yàn)算法輸入:(ID)輸出:CH.Lookup(ID)運(yùn)行結(jié)果調(diào)用CH.Lookup(ID)算法,當(dāng)輸出為1時(shí)身份校驗(yàn)通過(guò),可進(jìn)行下一步申報(bào)信息校核。
身份校驗(yàn)通過(guò)后,交易中心調(diào)用申報(bào)信息校核算法確定申報(bào)時(shí)間是否與本次申報(bào)唯一綁定,校核其申報(bào)價(jià)格、申報(bào)電量等申報(bào)信息的完整性。申報(bào)信息校核算法具體描述如下。
算法5:申報(bào)信息校核算法輸入:(M=(ID,C,Q),M',t,σ,pk)輸出:TS.Very(pk,M',t,σ)運(yùn)行結(jié)果1) 調(diào)用TS.Hash(M)算法,計(jì)算M的摘要值是否等于M';2) 調(diào)用TS.Very(pk,M',t,σ)算法,當(dāng)輸出為1時(shí)可進(jìn)行下一步價(jià)格密文排序匹配。
申報(bào)信息校核通過(guò)后,交易中心調(diào)用價(jià)格密文排序匹配算法對(duì)申報(bào)價(jià)格的密文按照高低匹配的方式進(jìn)行匹配。價(jià)格密文排序匹配算法具體描述如下。
算法6:價(jià)格密文排序匹配算法輸入:購(gòu)電方出價(jià)密文(Cb1,Cb2,…,Cbl),售電方出價(jià)密文(Cs1,Cs2,…,Csl)輸出:排序匹配結(jié)果1) 通過(guò)保序加密技術(shù),密文保留了明文原有的順序,將購(gòu)電方出價(jià)密文從高到低排序,將售電方出價(jià)密文從低到高排序;2) 按照高低匹配的方式,從最低售電方出價(jià)和最高購(gòu)電方出價(jià)依次形成匹配,規(guī)定管電/購(gòu)電雙方價(jià)格相減大于等于零時(shí)匹配有效,直到雙方出現(xiàn)最后一個(gè)有效匹配對(duì)為止。
完成匹配后,交易中心與匹配成功的購(gòu)電方和售電方交互得到其保序加密私鑰,調(diào)用價(jià)格公開算法將其價(jià)格密文解密成價(jià)格明文。對(duì)于未成功匹配的申報(bào)方,保留其申報(bào)價(jià)格的隱私性。價(jià)格打開算法具體描述如下。
算法7:價(jià)格打開算法輸入:(Cbi,Csj輸出:(Pbi,Psj)調(diào)用OPE.Dec算法,解密得到該成交對(duì)的價(jià)格明文Pbi、Psj。
交易中心得到購(gòu)電方及售電方的價(jià)格明文后,選擇合適的方式確定其成交價(jià)格,例如將匹配成交雙方申報(bào)價(jià)格的均值作為其成交價(jià)格。待匹配成功的購(gòu)/售電雙方確認(rèn)并簽訂合同后,完成本次交易出清。算法流程如圖2所示。
圖2 具有隱私保護(hù)功能的交易出清算法流程圖
本節(jié)從安全性和性能兩方面對(duì)提出的具有隱私保護(hù)功能的交易出清方案進(jìn)行分析,并與現(xiàn)有典型方案進(jìn)行比較。
(1) 交易申報(bào)時(shí)的身份有效性驗(yàn)證。依賴布谷鳥哈希算法高效檢索的性能實(shí)現(xiàn)申報(bào)方身份的有效性驗(yàn)證。
(2) 交易成交前的申報(bào)價(jià)格保密性。保序加密技術(shù)能夠?qū)崿F(xiàn)購(gòu)/售電方申報(bào)價(jià)格的加密保護(hù),保障敵手從價(jià)格密文恢復(fù)出價(jià)格明文的概率是可忽略的,并且價(jià)格密文保留了價(jià)格明文原有的順序,可在交易定價(jià)時(shí)進(jìn)行高低排序匹配。
(3) 交易申報(bào)信息的完整性及申報(bào)時(shí)間綁定的唯一性。數(shù)字時(shí)間戳技術(shù)將每一次申報(bào)時(shí)間與申報(bào)信息唯一綁定,并依賴哈希算法的抗碰撞性及數(shù)字簽名技術(shù)的不可偽造性實(shí)現(xiàn)對(duì)申報(bào)信息的完整性保護(hù)。
本文分別采用PR04[5]方案、LXY+16[8]方案及SM2數(shù)字簽名算法實(shí)現(xiàn)對(duì)底層的布谷鳥哈希算法、保序加密、數(shù)字簽名。實(shí)驗(yàn)環(huán)境為Intel(R) Core(TM) i5-1135G7@2.40 GHz,網(wǎng)絡(luò)帶寬為100 Mibit/s,軟件實(shí)現(xiàn)語(yǔ)言為C++,測(cè)算方法為核心算法運(yùn)行1000次并計(jì)算其平均運(yùn)行時(shí)間。
本方案的7個(gè)核心算法運(yùn)行一次的平均時(shí)間如表2所示。本方案在滿足交易出清安全需求的同時(shí),核心算法的實(shí)例化運(yùn)行速度快,能夠有效支撐一次集中競(jìng)價(jià)交易中申報(bào)信息的隱私及安全保護(hù),并高效實(shí)現(xiàn)交易中心對(duì)價(jià)格密文的匹配,具備較高的實(shí)用性。
表2 核心算法平均運(yùn)行時(shí)間 單位:ms
本方案與文獻(xiàn)[9]方案的安全性和性能對(duì)比如表3所示。在相同環(huán)境下的實(shí)驗(yàn)結(jié)果表明,相比于現(xiàn)有典型方案,本方案更全面地考慮了交易出清各環(huán)節(jié)的隱私保護(hù)需求,實(shí)現(xiàn)了交易申報(bào)前的用戶身份有效性驗(yàn)證、交易成交前的申報(bào)價(jià)格保密性、申報(bào)信息的完整性以及申報(bào)時(shí)間唯一綁定,取得了較高的實(shí)現(xiàn)效率,更適用于電力集中競(jìng)價(jià)交易模式下的大規(guī)模使用。
表3 方案安全性和性能對(duì)比
本文圍繞具有隱私保護(hù)功能的可信電力集中競(jìng)價(jià)交易出清問(wèn)題進(jìn)行了研究,給出了系統(tǒng)模型和安全性定義,并且通過(guò)多種隱私保護(hù)技術(shù)解決目前交易出清存在的申報(bào)價(jià)格隱私暴露、申報(bào)信息易被篡改等安全問(wèn)題。實(shí)驗(yàn)結(jié)果表明,本文提出的方案較好地兼顧了隱私保護(hù)及效率。