鄭奕隆,袁平,殷鋒
(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065;2.重慶第二師范學(xué)院數(shù)學(xué)與信息工程學(xué)院,重慶400067;3.西南民族大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,成都610041)
智能電網(wǎng)已成為下一代電網(wǎng)的發(fā)展方向,它利用最新的信息和通信技術(shù),實(shí)現(xiàn)了從發(fā)電站到終端的實(shí)時(shí)負(fù)載和控制功能[1-3]。然而,智能電網(wǎng)正面臨著嚴(yán)重的信息安全問題。研究結(jié)果表明,智能電網(wǎng)面臨著來自虛擬世界和物理世界的惡意攻擊[4]。例如,攻擊者可以訪問公開信道并對(duì)數(shù)據(jù)進(jìn)行竊取、偽造[5]或?qū)嵤┲虚g人攻擊欺騙參與者,也可以非法訪問暴露在外的智能電網(wǎng)設(shè)備并獲取用戶的隱私數(shù)據(jù)[6],還可以通過拒絕服務(wù)攻擊(DoS),惡意破壞智能電網(wǎng)通信系統(tǒng),造成不可逆轉(zhuǎn)的損害。因此,在智能電網(wǎng)快速發(fā)展的今天,如何保障智能電網(wǎng)系統(tǒng)的信息安全,成為關(guān)系到電力系統(tǒng)的安全、穩(wěn)定、經(jīng)濟(jì)、優(yōu)質(zhì)運(yùn)行的重大問題[7]。智能電網(wǎng)的安全解決方案包括異常檢測(cè)技術(shù)、漏洞掃描技術(shù)、病毒掃描技術(shù)、信道加密技術(shù)以及身份認(rèn)證技術(shù)等,其中,設(shè)計(jì)和實(shí)現(xiàn)包括密鑰交換和身份認(rèn)證的安全解決方案,以確保智能電網(wǎng)的安全性,近年來被廣大研究者視為研究熱點(diǎn)。然而,如何設(shè)計(jì)足夠安全的密鑰交換和身份認(rèn)證的方案并且能夠有效應(yīng)用到智能電網(wǎng)應(yīng)用場(chǎng)景,是目前亟待解決的問題。本文基于這一研究背景,改進(jìn)了Mahmood 協(xié)議[8]易受已知會(huì)話特定臨時(shí)信息攻擊的問題,提出了安全增強(qiáng)的基于ECC(橢圓曲線加密)技術(shù)的智能電網(wǎng)認(rèn)證密鑰協(xié)商協(xié)議RE-AKASG(Robust ECC-based Authentication Key Agreement Protocol in Smart Grid),并通過安全性分析論證了協(xié)議的安全性。
ECC 也叫橢圓加密算法,由Koblitz 和Miller 兩人于1985 年提出。ECC 加密算法是一種公鑰加密技術(shù),以橢圓曲線理論為基礎(chǔ)。利用有限域上橢圓曲線的點(diǎn)構(gòu)成的Abel 群離散對(duì)數(shù)難解性,實(shí)現(xiàn)加密、解密和數(shù)字簽名。將橢圓曲線中的加法運(yùn)算與離散對(duì)數(shù)中的模乘運(yùn)算相對(duì)應(yīng),就可以建立基于橢圓曲線的對(duì)應(yīng)密碼體制。
ECC 技術(shù)的相關(guān)定義如下所示:
點(diǎn)加運(yùn)算:已知橢圓曲線E(a,b)上兩點(diǎn)P,Q,作直線PQ 交于E(a,b)上另一點(diǎn),過作y 軸的平行線交E(a,b)上另一點(diǎn)于R,規(guī)定P+Q=R。
倍點(diǎn)運(yùn)算:若P,Q 兩點(diǎn)重合(P=Q),則過P 點(diǎn)作E(a,b)的切線交于E(a,b)的另一點(diǎn),過作y 軸的平行線交E(a,b)上另一點(diǎn)于R,將P+Q 作為倍點(diǎn)運(yùn)算,此時(shí)R=P+Q=2P。
標(biāo)量乘運(yùn)算:在正整數(shù)集上取標(biāo)量k,將(k 次)作為標(biāo)量乘運(yùn)算,記作R=kP。
橢圓曲線離散對(duì)數(shù)問題:已知橢圓曲線E(a,b)上兩點(diǎn),P,R=kP,其中k,由P,R 求解k 的問題被稱為橢圓曲線離散對(duì)數(shù)問題(ECDLP),這個(gè)問題目前在數(shù)學(xué)上沒有有效的解決辦法。
本節(jié)結(jié)合智能電網(wǎng)應(yīng)用場(chǎng)景,提出基于ECC 的安全增強(qiáng)的認(rèn)證密鑰協(xié)商協(xié)議,主要用于智能電網(wǎng)終端設(shè)備和智能電網(wǎng)監(jiān)控中心之間密鑰協(xié)商與相互認(rèn)證。協(xié)議部分符號(hào)含義表如表1 所示。
表1 部分符號(hào)含義
本文提出的RE-AKASG 協(xié)議分為三個(gè)階段,初始化階段、注冊(cè)階段與認(rèn)證階段,本節(jié)按三個(gè)階段分別介紹協(xié)議的執(zhí)行過程。
(1)RE-AKASG 協(xié)議初始化階段
在初始化階段,可信第三方服務(wù)器S 選擇兩個(gè)大素?cái)?shù)p,q,F(xiàn)p作為橢圓曲線E(a,b):y2=x3+ax+b 上的有限域,選擇a,b ∈Fp,并且滿足4a3+27b2(mod p)≠0。除此之外,點(diǎn)P ∈E(Fp)是橢圓曲線的基點(diǎn),q 作為由P生成的子群的階。選取單向散列函數(shù)H(.)與對(duì)稱加密、解密算法E(.),D(.),S 將可信任的協(xié)議實(shí)體身份標(biāo)識(shí)錄入數(shù)據(jù)庫,其中每個(gè)協(xié)議實(shí)體設(shè)備的身份標(biāo)識(shí)IDx采用硬件保護(hù)。S 選取一個(gè)隨機(jī)數(shù)k ∈Z*q作為S 的長期私鑰,計(jì)算K=k·P 作為S 的公鑰,并通過公開信道將公鑰S 下發(fā)給協(xié)議實(shí)體A,B。
(2)RE-AKASG 協(xié)議注冊(cè)階段
RE-AKASG 協(xié)議注冊(cè)階段示意圖如圖1 所示。
圖1 RE-AKASG協(xié)議注冊(cè)階段示意圖
圖1 為RE-AKASG 協(xié)議注冊(cè)階段示意圖。以協(xié)議實(shí)體A 為例,在協(xié)議注冊(cè)階段,協(xié)議實(shí)體A 首先選取隨機(jī)數(shù)作為注冊(cè)階段的私鑰,計(jì)算與S 通信的注冊(cè)密鑰kas=ma·K=ma·k·P,并計(jì)算A 的公鑰Ma=ma·P,利用kas 將身份信息IDA加密,與Ma一起發(fā)送給S。S 在收到消息后,選取協(xié)議對(duì)實(shí)體A、B 相同的 隨 機(jī) 數(shù),計(jì) 算 Xab=xab·P ;計(jì) 算Lab=(k+xab)·P,ksa=k·Ma=k·ma·P。并利用與kas 相等的密鑰ksa 解密IDA,隨后計(jì)算A 的認(rèn)證私鑰ta=k+xab+k·H(H(IDA)||Lab),并與Xab加密后一并發(fā)送給協(xié)議實(shí)體A,協(xié)議實(shí)體A 解密得到Xab,ta,結(jié)束注冊(cè)階段。
協(xié)議實(shí)體B 的注冊(cè)階段與A 完全相同,注冊(cè)階段完成后得到Xab與tb。
(3)RE-AKASG 協(xié)議認(rèn)證階段
RE-AKASG 協(xié)議認(rèn)證階段示意圖如圖2 所示。
圖2 RE-AKASG協(xié)議認(rèn)證階段示意圖
圖2 為RE-AKASG 協(xié)議認(rèn)證階段示意圖。在該階段,協(xié)議實(shí)體A 與協(xié)議實(shí)體B 完成會(huì)話密鑰協(xié)商與相互認(rèn)證工作。首先,協(xié)議實(shí)體A 選取會(huì)話隨機(jī)數(shù),計(jì)算Qa=qa·P,Ra=IDA·P 并生成時(shí)間戳TSa。隨后,協(xié)議實(shí)體A 計(jì)算Ua=qa+IDA+ta·H(Qa||Ra||TSa),計(jì)算身份標(biāo)識(shí)的散列值H(IDA),并用Xab將Ua進(jìn)行異或加密得到Wa,該步驟結(jié)束后,將H(IDA),Wa,Ra,Qa,TSa通過公開信道發(fā)送給協(xié)議實(shí)體B。協(xié)議實(shí)體B 接收到A 的消息后,首先解密得到Ua,并計(jì)算Ua·P,判斷Ua·P 的 數(shù) 值 計(jì) 算 結(jié) 果 與 (Qa+Ra)+((K+Xab)+K·H(H(IDA)||K+Xab))·H(Qa||Ra||TSa)是否相等,若結(jié)果相等,再驗(yàn)證時(shí)間戳TSa的新鮮性,若驗(yàn)證通過,則選取會(huì)話隨機(jī)數(shù),計(jì)算Qb=qb·P,Rb=IDB·P 并生成時(shí)間戳TSb。該步驟后協(xié)議實(shí)體B 按照以下方式計(jì)算得到Ub=qb+IDB+tb·H(Qb||Rb||TSb),計(jì)算身份標(biāo)識(shí)的散列值 H(IDB) ,并按照如下方式計(jì)算得到Kab=(qb+IDB)·(Qa+Ra),該步驟后計(jì)算得到與A 的會(huì)話密鑰SKab=H(H(IDA)||H(IDB)||Kab),隨后生成校驗(yàn)值h1=H(Rb||Qb||SKab||Ra||Qa),并用Xab將Ub進(jìn)行異或加密得到Wb,將H(IDB),Wb,Rb,Qb,TSb,h1通過公開信道發(fā)送給協(xié)議實(shí)體A。A 接收到消息后,首先用Xab對(duì)Wb進(jìn)行解密得到Ub,計(jì)算Ub·P,并判斷Ub·P 的數(shù)值計(jì)算結(jié)果 與(Qb+Rb)+((K+Xab)+K·H(H(IDB)||K+Xab))·H(Qb||Rb||TSb)是否相等,若結(jié)果相等,再驗(yàn)證時(shí)間戳TSb的新鮮性 ,若 驗(yàn) 證 通 過 ,則 通 過 計(jì) 算 得 到Kba=(qa+IDA)·(Qb+Rb)。該步驟結(jié)束后,計(jì)算與B 的會(huì)話密鑰 SKba=H(H(IDB)||H(IDA)||Kba),生成校驗(yàn)值h2=H(Ra||Qa||SKba||Rb||Qb),比較h2與h1是否相等,若二者相等,將h2發(fā)送給協(xié)議實(shí)體B。B 收到h1之后,對(duì)比h1與h2是否相等,若相等,則認(rèn)證成功。
本節(jié)將對(duì)本文提出的RE-AKASG 協(xié)議進(jìn)行密碼分析,論證協(xié)議能夠滿足包括已知密鑰安全性、抗模仿攻擊、抗密鑰泄露攻擊、完全前向安全性、抗重放攻擊、抗已知會(huì)話特定臨時(shí)信息攻擊在內(nèi)的安全屬性。各安全屬性定義如下:
已知密鑰安全(Known-key security):如果攻擊者獲得了之前的一些會(huì)話密鑰,他仍然不能獲取本次會(huì)話密鑰。
抗模仿攻擊(Impersonation attacks resistance):如果攻擊者不知道協(xié)議參與者A 的長期私鑰,他將不能夠模仿A 和其他參與方通信。
抗密鑰泄露攻擊(Key compromise impersonation attacks resistance):如果攻擊者獲得了協(xié)議參與者A 的長期私鑰,在不知道其他參與方的長期私鑰的情況下,攻擊者不能夠假冒其他參與方與協(xié)議參與者A 通信。
完全前向安全性(Perfect forward secrecy):所有協(xié)議參與者的長期私鑰的泄露不影響之前建立的會(huì)話密鑰的安全性。
抗重放攻擊(Replay attacks resistance):攻擊者無法發(fā)送一個(gè)目的主機(jī)已接收過的包,來達(dá)到欺騙系統(tǒng)的目的
抗已知會(huì)話特定臨時(shí)信息攻擊(Known session specific temporary information attacks resistance):臨時(shí)中間結(jié)果的泄露不會(huì)影響其他會(huì)話的會(huì)話密鑰的安全性。
RE-AKASG 協(xié)議的安全性分析如下:
(1)已知密鑰安全性
由第2 節(jié)可得,RE-AKASG 協(xié)議的會(huì)話密鑰為SKab=H(H(IDA)||H(IDB)||Kab),其中Kab的值由與會(huì)話相關(guān)的qb,Qa共同決定,其中qb,Qa的值隨會(huì)話的不同而不同,即使攻擊者獲取了先前的會(huì)話密鑰,也不能借此獲取本次會(huì)話的會(huì)話密鑰,RE-AKASG 協(xié)議具有已知密鑰安全性。
(2)抗模仿攻擊
RE-AKASG 協(xié)議的認(rèn)證階段驗(yàn)證步驟主要為判斷Ub·P 以及Ua·P 的數(shù)值計(jì)算結(jié)果。由于攻擊者無法獲取由可信第三方服務(wù)器S 注冊(cè)階段通過加密下發(fā)的ta,tb,因此攻擊者無法構(gòu)造Ua與Ub,故RE-AKASG 協(xié)議能夠抵抗模仿攻擊。
(3)抗密鑰泄露攻擊
如 果 ta,tb被 攻 擊 者 獲 取 ,由 于Ua=qa+IDA+ta·H(Qa||Ra||TSa),攻擊者無法獲知qa,IDA的值,故無法計(jì)算得到Ua。同理,由于Ub=qb+IDB+tb·H(Qb||Rb||TSb),攻擊者無法獲知qb,IDB的值,故無法計(jì)算得到Ub。此外,由于Kab=(qb+IDB)·(Qa+Ra),Kba=(qa+IDA)·(Qb+Rb),會(huì) 話密鑰與ta,tb無關(guān)。因此,密鑰泄露對(duì)RE-AKASG 協(xié)議的安全性并未會(huì)造成影響,協(xié)議能夠抵抗臨時(shí)密鑰泄露攻擊。
(4)完全前向安全性
其中Kab的值由與會(huì)話相關(guān)的qb,Qa共同決定,其中qb,Qa的值隨會(huì)話的不同而不同,即使攻擊者獲取了ta,tb,由于攻擊者無法獲取先前各次會(huì)話的qa與qb,因此攻擊者不能計(jì)算的得到先前會(huì)話的會(huì)話密鑰,故RE-AKASG 協(xié)議具有完全前向安全性。
(5)抗重放攻擊
由于協(xié)議實(shí)體在認(rèn)證階段通信的過程中會(huì)附帶時(shí)間戳信息,協(xié)議實(shí)體根據(jù)時(shí)間戳信息能夠判斷消息的新鮮性,故RE-AKASG 協(xié)議能夠抵抗重放攻擊。
(6)抗已知特定會(huì)話臨時(shí)信息攻擊
協(xié)議的會(huì)話密鑰為SKab=H(H(IDA)||H(IDB)||Kab),其中Kab=(qb+IDB)·(Qa+Ra),即使臨時(shí)信息qa與qb被攻擊者獲知,由于協(xié)議具有匿名性,攻擊者無法獲取協(xié)議實(shí)體的身份標(biāo)識(shí)IDA與IDB,從而無法計(jì)算得到協(xié)議的會(huì)話密鑰,故RE-AKASG 協(xié)議能夠抵抗已知特定會(huì)話臨時(shí)信息攻擊。
本文立足于智能電網(wǎng)應(yīng)用場(chǎng)景,提出了安全增強(qiáng)的基于ECC 技術(shù)的智能電網(wǎng)認(rèn)證密鑰協(xié)商協(xié)議REAKASG,就該協(xié)議初始化階段,注冊(cè)階段以及認(rèn)證階段的執(zhí)行過程進(jìn)行了詳盡的描述,本文第三節(jié)通過對(duì)RE-AKASG 協(xié)議的安全性分析,證明了RE-AKASG 協(xié)議的安全性,本文的研究成果對(duì)后續(xù)研究具有啟示意義。