
本發明屬于智能電網
技術領域:
,尤其涉及一種智能電網中基于二叉樹的批認證方法。
背景技術:
:智能電網(smartgrid)將取代傳統電網,成為下一代電力供應網絡,這已經是行業專家共同的認知。智能電網是一種現代化的電網,使用模擬和數字信號,傳遞電力使用端和供應端的信息。根據這些信息,智能電網可以自動的改進電力生產和配送的效率、可靠性、經濟性和可持續性。智能電網從大量的家用電器、智能電表(smartmeter,sm)、分布式設施和其他設備收集信息。與傳統通信網絡系統相比,智能電網有新的目標、需求和責任。現有技術中,一種智能電網的通信架構,其中包含家庭局域網(homeareanetwork,han)、建筑區域網絡(buildingareanetwork,ban)、附近的區域網絡(neighborhoodareanetwork,nan)。在每一個nan中都有一個控制中心(controlcenter,cc)用于管理該nan,cc負責從nan網關(gateway,gw)收集數據,向用戶發送實時賬單和控制信息。cc還需向nangw,bangw和sms收集和分配相應參數指令。高級量測體系(advancedmeteringinfrastructure,ami)是智能電網中的一個重要組成部分,而智能電表是ami的重要部件。智能電表是一個資源限制性的設備,它具有低存儲和計算能力。智能電表和家用設備之間包含兩種通信方式,數據流和電流。智能電表發送設備的各種信息給控制中心,其中一個重要的信息就是實時的用電需求;cc發送實時的賬單給智能電表,使得客戶可以實時了解他的用電情況。由于這些信息涉及到用戶隱私,所以需要保密。因此設計一個認證方案,提供信息的安全傳送,保證只有合法用戶能夠獲得電表信息是十分必要的。在智能電網中安全和隱私問題面臨著許多挑戰,研究者致力于發現和解決智能電網的各種安全問題。近年來,針對智能電網的不同安全需求,許多安全方案被提出。fouda等基于diffie-hellman算法提出了一個輕量級的認證方案,該方案解決了hangw和bangw之間的雙向認證問題。wu等結合needham-schroeder認證協議和橢圓密碼算法提出了一個密鑰管理協議,該協議需在一個可信中心的協助下建立會話密鑰。但是,xia等發現wu等提出的方案存在中間人攻擊缺陷(man-in-the-middleattack)。nabeel等基于量子不可克隆的特性,設計了一個密鑰管理方案實現ami中的安全通信,該方案提供了一個以硬件為基礎的強認證機制。但是該方案需依賴于一個中心服務器存儲所有智能電表的密鑰,使得方案的擴展性較差,而且如果該中心服務器被攻擊,會影響到ami中所有電表的安全性。現有文獻提出了一個工作于ami中的密鑰管理方案。這個方案基于密鑰圖標實現安全通信。但是該方案被發現存在嚴重缺陷,無法抵御dos攻擊,作者結合基于身份的密碼系統和有效的密鑰樹技術提出了一個新的密鑰管理方案。該方案實現了智能電表和電表數據管理系統之間的安全通信。現有文獻中,基于merkle哈希樹設計了一個認證協議,該協議考慮智能電表是一個低計算能力的設備,協議中只采用哈希計算。但是協議沒有考慮bangw的計算負擔問題,bangw需要認證每一個智能電表發送的消息,而且智能電表需要存儲較多的數據。此外,協議無法抵御重放攻擊。為了能夠獲得用戶的實時用電情況,智能電表需要與bangw頻繁的進行通信,bangw每隔一個較短的時間間隔就需要重新認證該區域內所有智能電表發送的消息。而在一個ban內部有成千上萬的智能電表,因此如果采用上述協議,bangw的計算負擔會非常繁重。綜上所述,現有技術存在的問題是:在bangw認證智能電表的信息時,需對每一個智能電表進行單獨認證,隨著ban中智能電表數量的不斷增長,bangw勢必會成為網絡的計算瓶頸。本方案能實現bangw對所有智能電表的批量認證,即bangw執行一次認證就可以認證所有智能電表信息的有效性,顯著提高了bangw的工作效率,解決了bangw的計算瓶頸問題。技術實現要素:針對現有技術存在的問題,本發明提供了一種智能電網中基于二叉樹的批認證方法。本發明是這樣實現的,一種智能電網中基于二叉樹的批認證方法,所述智能電網中基于二叉樹的批認證方法,包括以下步驟:當bangw收到智能電表發送的數據,需要認證數據的來源是否合法;本發明包括單用戶認證和批認證兩個部分;所述單用戶認證中,cc首先需要初始化協議參數,當有新的智能電表加入時,先由cc對新的智能電表進行初始化、注冊、認證和密鑰更新;批認證:為收集用戶的實時用電情況,每t分鐘,所有的smi將用電報告發送給bangw一次;bangw收到sms的數據后,采用批認證,消耗n個乘法和2n個雙線性映射驗證用戶發送的信息,其中n為智能電表數;如果認證通過,可確定所有消息都來源于合法的智能電表;反之bangw進行比較,確定假冒消息和惡意攻擊。進一步,cc對新的智能電表進行初始化的方法包括:cc先生成如下參數,g1是一個由p產生的循環加法群,它的階是q,g2是階為q的循環乘法群,雙線性映射cc隨機生成作為自己的私鑰,然后計算ppub=sp作為自己的公鑰。進一步,cc對新的智能電表進行注冊的方法包括:bangw預設置公共參數{g1,g2,q,p,ppub,h,h1,h()};每一個智能電表加入智能電網時,按照如下步驟獲得智能電表的系統參數;具體包括:1)智能電表smi向cc發送它的idi;2)cc選擇一個隨機數計算和ski=sh(didi);3)cc通過一個安全信道發送消息{g1,g2,q,p,ppub,h,h1,h()}和給smi。進一步,cc對新的智能電表進行認證的方法包括:為收集用戶的實時用電報告,smi向bangw發送消息mi;為對該消息進行簽名,smi首先選擇一個隨機數計算ai=rip和bi=ski+h(mi,ai)rippub,其中enc是一個對稱加密算法;最后smi發送消息<didi,ai,bi,mi,ti,ci>給bangw,其中ci=h1(ai,bi,mi,ti);在收到消息<didi,ai,bi,mi,ti,ci>后,bangw檢測(t*-ti)≤δt,其中t*是系統當前時間,δt表示允許的最大傳輸延遲時間;檢測通過后,bangw計算該式通過如下方式認證:進一步,cc對新的智能電表進行密鑰更新的方法包括:sms和bangw在密鑰更新階段更新會話密鑰;系統設置的更新時間間隔,作為系統參數被保存在sms和bangw中;在密鑰更新階段,sms和bangw分別重新計算會話密鑰用戶要獲得sms中存儲的數據時,輸入正確的id和sms根據自己存儲的did和來認證用戶輸入的信息是否有效;bangw在認證sms后,通過解密來獲得消息mi,其中的ti是時間戳。進一步,所述基于二叉樹的批認證方法包括:步驟一,對于n=2h個智能電表{sm1,sm2,...,smn};每個葉子節點<h,v>代表一個智能電表,smi+1其對應的簽名信息為ci+1=<ai+1,bi+1>,其中(i=0,1,2,...,n-1);每一個內部節點<l,v>(l≤(h-1)),對應著一個簽名集合其中k1=2h-l·v,k2=2h-l·(v+1)-1;而根節點是所有節點的簽名集合;步驟二,sm1,sm2,...,smn發送消息<did1,a1,b1,m1,t1,c1>,<did2,a2,b2,m2,t2,c2>,...,<didn,an,bn,mn,tn,cn>,給bangw;bangw首先檢測(t*-tj)≤δt(j=1,2,...,n),其中t*是bangw的當前時間,tj是smj的當前時間,t1,t2,...,tn之間需要相互同步;步驟三,bangw通過對收到的所有消息進行批認證,批認證過程如下:如果這些消息都來源于葉子節點的智能電表sm1,sm2,...,smn,批認證變為如果認證通過,就表示所有消息都來源于合法的智能電表;反之bangw還需要通過計算并與收到的ci(i=1,2,...,n)進行比較,確定假冒消息和惡意攻擊。進一步,所述bangw用n個乘法和2n個雙線性映射運算來一次性認證sm1,sm2,...,smn的所有消息。進一步,bangw批認證的計算開銷包括乘法和雙線性映射法計算法;具體包括:設tmul表示系統在橢圓曲線上執行乘法操作所需的時間,tpar表示雙線性對計算時間,b(h,t)和c(h,t)表示單一認證和批認證所需的計算時間,其中h是樹的高度,t是偽造簽名的葉子節點數;設一個智能電網的ban中包含n=2h個智能電表sm1,sm2,...,smn,bangw一次要收到和認證n個消息;這n個sm組成一個高度為h的二叉樹;如果所有sms都是誠實的,發送的消息都是合法的,沒有被惡意篡改,則b(h,0)=ntmul+2tpar,這時協議的計算開銷最小;如果sms發送的消息中包含k個假冒消息,那么bangw需要通過二叉樹查找算法找出相應的假冒消息;bangw通過認證節點<1,0>和<1,1>來確認所有消息的合法性,其中<1,0>包含葉子節點<3,0>,<3,1>,<3,2>和<3,3>;<1,1>包含葉子節點<3,4>,<3,5>,<3,6>,<3,7>;如果bangw成功認證內部節點<1,0>,則bangw確定收到的消息確實來源于合法的葉子節點<3,0>,<3,1>,<3,2>和<3,3>;反之,bangw需要繼續認證<2,0>和<2,1>;所述最少的計算開銷是k=1,則所述最多的計算開銷是k=n,則由此可得,bangw批認證的計算開銷是:而采用單一用戶認證方式認證所有用戶的計算開銷是:c(h,k)=2ntmul+2(n+1)tpar。本發明的另一目的在于提供一種智能電網中基于二叉樹的批認證系統。本發明的優點及積極效果為:安全和高效的認證協議是確保智能電網安全的關鍵。本發明基于二叉樹提出了一個批處理認證協議,該協議可被用于智能電網的ami中。可以實現bangw和智能電表間的安全認證和密鑰協商功能。通過安全和效率分析,說明當智能電網采用本發明設計的協議時,能夠保證bangw和智能電表之間傳輸信息的保密性和完整性,且能抵御重放、假冒、中間人攻擊。在該協議中,bangw可以同時認證所有智能電表的信息,降低了bangw的計算消耗。與基于rsa算法的安全方案相比(在nistir7628標準中,rsa算法被建議應用于安全智能電網),當智能電網中有500個智能電表時,rsa方案的計算消耗是本發表方案的25倍,尤其當ban中包含大量智能電表時,本協議可以顯著提高認證效率。附圖說明圖1是本發明實施例提供的智能電網中基于二叉樹的批認證方法流程圖。圖2是本發明實施例提供的二叉認證樹示意圖。圖3是本發明實施例提供的現有技術與本發明的方法比較結果圖。具體實施方式為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施僅僅用以解釋本發明,并不用于限定本發明。下面結合附圖及具體實施例對本發明的應用原理作進一步描述。如圖1所示,本發明實施提供的智能電網中基于二叉樹的批認證方法,包括以下步驟:s101:當bangw收到智能電表發送的數據,需要認證數據的來源是否合法;首先進行單用戶認證協議,然后在單用戶認證協議的基礎上進行批認證;所述單用戶認證中,cc首先需要初始化協議參數,當有新的智能電表加入時,先由cc對新的智能電表進行初始化、注冊、認證和密鑰更新;s102:批認證:為收集用戶的實時用電情況,每t分鐘,所有的smi將用電報告發送給bangw一次;每個t分鐘時間間隔,bangw用n個乘法和2n個雙線性映射法來驗證用戶發送的信息,其中n為智能電表數;并通過基于二叉樹進行批認證;如果認證通過,所有消息都來源于合法的智能電表;反之bangw進行比較,確定假冒消息和惡意攻擊。下面結合具體實施例對本發明的應用原理作進一步描述。1、本發明實施提供的智能電網中基于二叉樹的批認證方法中,給出智能電網中ami的通信架構,并給出基于身份的密碼系統和雙線性對(bilinearpairings)的相關理論。1.1ami通信架構:ami是智能電網中的一個關鍵部分,本發明實施提供的一種智能電網中ami的通信架構。它由下面幾個部分組成,一個bangw,許多智能電表和家用電器。bangw負責收集、分析和存儲數據,如用電實時賬單,需要從nangw發送給智能電表。ami中的安全協議既要考慮智能電表的低計算、存儲特性,同時bangw需要管理數以千計的智能電表,如何提高協議的執行效率,也是協議設計時需面臨的挑戰。本發明將關注han中bangw和智能電表之間安全雙向通信。1.2基于身份的密碼系統和雙線性對:基于身份的密碼系統可以簡化認證管理,用戶唯一的身份信息就是他的公鑰。與基于rsa加密算法的協議相比,雙線性對方案提供了低傳輸消耗。因此本發明基于身份的密碼系統和雙線性對理論提出了一個新的批處理認證協議,用于bangw和智能電表之間的安全通信。本發明首先簡述雙線性對的定義和性質。假設g1是一個由p產生的循環加法群,它的階是q,g2是階為q的循環乘法群,則bilinearpairing是映射假定離散對數問題(dlp)在兩個群上都是困難的,則bilinearpairing有以下性質。1)雙線性:對有特別的2)非退化性:使得3)可計算性:對于存在一個高效的算法計算對于群g1,計算上diffie-hellman問題(cdh)是困難的,但是決定性的diffie-hellman問題(ddh)是容易的。cdh問題:給定p,ap,bp∈g1,計算abp是困難的,過多項式時間算法。ddh問題:給定p,ap,bp,abp∈g1,對于能夠判定c=ab(modq)是否成立。2、批處理認證協議:當bangw收到智能電表發送的數據,首先需要認證數據的來源是否合法。本發明將首先介紹一個單用戶認證協議,然后在單用戶認證協議的基礎上給出批處理認證協議工作的過程。2.1單一用戶認證協議cc首先需要初始化協議參數,當有新的智能電表加入時,先由cc對其進行注冊。本發明給出的協議包含四個階段:初始化(setup)、注冊(registration)、認證(authentication)和密鑰更新(keyrefreshment)階段。本發明中所使用的相關符號如表1所示。表1.文中使用的符號初始化setup階段:cc先生成如下參數,g1是一個由p產生的循環加法群,它的階是q,g2是階為q的循環乘法群,bilinearpairing是映射cc隨機生成作為自己的私鑰,然后計算ppub=sp作為自己的公鑰。注冊registration階段:bangw和智能電表需先注冊才能加入到智能電網。bangw需要預設置公共參數{g1,g2,q,p,ppub,h,h1,h()}。每一個智能電表加入智能電網時,需按照如下步驟獲得它的系統參數。1)智能電表smi向cc發送它的idi。2)cc選擇一個隨機數計算和ski=sh(didi)。3)cc通過一個安全信道發送消息{g1,g2,q,p,ppub,h,h1,h()}和給smi。注冊階段必須是在智能電表加入到智能電網前由管理員完成。認證authentication階段:為了收集用戶的實時用電報告,smi需要向bangw發送消息mi。為了對該消息進行簽名,smi首先選擇一個隨機數計算ai=rip和bi=ski+h(mi,ai)rippub,其中enc是一個對稱加密算法,如aes或des。最后smi發送消息<didi,ai,bi,mi,ti,ci>給bangw,其中ci=h1(ai,bi,mi,ti)。在收到消息<didi,ai,bi,mi,ti,ci>后,bangw檢測(t*-ti)≤δt,其中t*是系統當前時間,δt表示允許的最大傳輸延遲時間。檢測通過后,bangw計算該式可通過如下方式認證。顯然,上述驗證過程的計算消耗主要由一個乘法和兩個雙線性映射組成,而且相較于乘法,雙線性映射的計算量要高得多。2.2批認證協議:為了收集用戶的實時用電情況,每t分鐘,如t=15分,所有的smi就需要將用電報告發送給bangw一次。此外,smi還需發送其它信息給bangw,如緊急信息,而本發明僅考慮發送的是實時用電信息。每個時間間隔,bangw需要用n個乘法和2n個雙線性映射運算來驗證用戶發送的信息,其中n為智能電表數。為了減少bangw的運算量,本發明介紹一個基于二叉樹的批認證協議。假設有n=2h個智能電表{sm1,sm2,...,smn},其對應的二叉樹如圖2所示。每個葉子節點<h,v>代表一個智能電表,smi+1其對應的簽名信息為ci+1=<ai+1,bi+1>,其中(i=0,1,2,...,n-1)。每一個內部節點<l,v>(l≤(h-1)),對應著一個簽名集合其中k1=2h-l·v,k2=2h-l·(v+1)-1。而根節點是所有節點的簽名集合。例如sm1,sm2,...,smn發送消息<did1,a1,b1,m1,t1,c1>,<did2,a2,b2,m2,t2,c2>,...,<didn,an,bn,mn,tn,cn>給bangw。bangw首先檢測(t*-tj)≤δt(j=1,2,...,n),其中t*是bangw的當前時間,tj是smj的當前時間,t1,t2,...,tn之間需要相互同步。bangw可以通過對收到的所有消息進行批認證,該批認證過程如下:如果這些消息都來源于葉子節點,即智能電表sm1,sm2,...,smn,上式可變為bangw僅僅需要計算n個乘法和2個雙線性映射,就可以一次性認證sm1,sm2,...,smn的所有消息,顯著降低了bangw的計算開銷。如果認證通過,就表示所有消息都來源于合法的智能電表;反之bangw還需要通過計算并與收到的ci(i=1,2,...,n)進行比較,確定假冒消息和惡意攻擊。由于所有的智能電表都是葉子節點,所以當有sms退出,或新的sms加入時,都不會對bangw造成任何影響。為了保護會話密鑰的安全性,協議提出了一個密鑰更新機制,sms和bangw可以在密鑰更新階段更新會話密鑰。系統設置的更新時間間隔,作為系統參數被保存在sms和bangw中。在密鑰更新階段,sms和bangw分別重新計算會話密鑰此外,用戶想要獲得sms中存儲的數據時,必須輸入正確的id和sms根據自己存儲的did和來認證用戶輸入的信息是否有效。bangw在認證sms后,通過解密來獲得消息mi,其中的ti是時間戳,用來防止重放攻擊。3、協議的安全性和效率分析:本發明將對協議的安全性和執行效率進行分析,并將本發明的協議與基于rsa的認證協議進行比較分析。3.1協議安全性分析:根據攻擊模型,分析本發明設計協議的安全性。1)重放攻擊(replayattack):由于在本協議中,所傳送的消息<didi,ai,bi,mi,ti,ci>中加了時間戳ti,其中bangw在收到消息后,需先驗證時間戳的有效性,所以本協議不存在重放攻擊。2)假冒攻擊(impersonationattack):如果攻擊者想要偽裝成合法智能電表發消息給bangw,他必須偽造通信消息<didi,ai,bi,mi,ti,ci>,其中ai=rip,bi=ski+h(mi,ai)rippub,ci=h1(ai,bi,mi,ti),攻擊者需要知道p,ski,ppub,才能偽造上述消息,但是由于攻擊者無法獲得id和所以他也就無法獲知p,ski,ppub。因此,協議不存在假冒攻擊。3)完整性保證(integrityassurance):在協議中bangw通過驗證智能電表,每個消息都包含一個消息摘要ci=h1(ai,bi,mi,ti),用于驗證消息的完整性。因此,如果消息被修改,bangw會發現。4)中間人攻擊:攻擊者可以通過監聽,獲得sms和bangw之間傳遞的消息。但是消息是以加密的形式傳遞的,攻擊者即使監聽到消息mi,他無法解密,也就無法獲知有效的傳輸信息。通過以上非形式化的分析,可得本發明設計的協議能夠抵御各種常見的攻擊,適用于智能電網的工作環境。2.2效率分析:協議中的計算開銷主要包含乘法,雙線性計算和哈希計算。由于哈希計算與乘法和雙線性計算相比,計算量很低,因此本發明不考慮哈希計算的開銷。設tmul表示系統在橢圓曲線上執行乘法操作所需的時間,tpar表示雙線性對計算時間,b(h,t)和c(h,t)表示單一認證和批認證所需的計算時間,其中h是樹的高度,t是偽造簽名的葉子節點數。設一個智能電網的ban中包含n=2h個智能電表sm1,sm2,...,smn,bangw一次要收到和認證n個消息。這n個sm可以組成一個高度為h的二叉樹。引理1:如果所有sms都是誠實的,發送的消息都是合法的,沒有被惡意篡改,則b(h,0)=ntmul+2tpar,這時協議的計算開銷最小。引理2:如果sms發送的消息中包含k個假冒消息,那么bangw需要通過二叉樹查找算法找出相應的假冒消息。bangw通過認證節點<1,0>和<1,1>來確認所有消息的合法性,其中<1,0>包含葉子節點<3,0>,<3,1>,<3,2>和<3,3>;<1,1>包含葉子節點<3,4>,<3,5>,<3,6>,<3,7>。如果bangw成功認證內部節點<1,0>,則bangw可以確定收到的消息確實來源于合法的葉子節點<3,0>,<3,1>,<3,2>和<3,3>;反之,bangw需要繼續認證<2,0>和<2,1>,二叉樹的結構如圖2所示。1)最少的計算開銷是k=1,則2)最多的計算開銷是k=n,則由此可得,bangw批認證的計算開銷是:而采用單一用戶認證方式認證所有用戶的計算開銷是:c(h,k)=2ntmul+2(n+1)tpar。由于使用批處理認證協議來查找惡意消息所需的計算開銷非常高,所以bangw可以使用單一用戶認證協議,即ci=h1(ai,bi,mi,ti),來查找惡意偽造消息。最近,現有技術rsa算法被建議用在安全智能電網,。因此,下面將本發明設計的協議與基于rsa算法的協議進行比較,說明本發明設計的協議在計算開銷方面的優勢。在基于rsa算法的協議中,bangw需要通過rsa簽名方案認證每一個sm的簽名。因此,在比較計算開銷方面,本發明分析協議中的rsa算法、雙線性對操作和乘法運算。在intel(r)core(tm)i5-4300m2.6-ghz的執行環境下,加密操作對應的計算開銷如表2所示。表2加密操作對應的計算開銷算法名稱執行時間pairing2.275mspointmultiplication0.004msrsasignatureverification0.284ms設每隔15分,bangw需接收一次ban中所有智能電表的信息,假設ban中有n個sm。在基于rsa算法的協議中,bangw需執行n個rsa簽名認證,來認證sms的消息;在本發明所提出的協議中,bangw需要執行ntmuland2tpar,來認證sms的消息。兩個協議的比較結果如圖3所示,當智能電表的數據增加時,現有技術基于rsa算法協議的計算開銷會成倍增加。以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。當前第1頁12