劉期烈,陳 澄
(重慶郵電大學通信與信息工程學院,重慶 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 網絡下的能源交易機制,以實現電動汽車與智能電網之間交易利益的最大化。