張海波,陳舟,黃宏武,賀曉帆
(1.重慶郵電大學通信與信息工程學院,重慶 400065;2.重慶郵電大學移動通信技術重慶市重點實驗室,重慶 400065;3.武漢大學電子信息學院,湖北 武漢 430072)
無線通信和汽車技術的飛速發展,促進了智能交通系統(ITS,intelligent transportation system)的發展。VANET(vehicular ad-hoc network)系統作為ITS 的重要組成部分,能夠為車輛節點提供當前駕駛路面情況、交通擁塞狀況和天氣情況等輔助信息,使車輛駕駛員能夠更加安全便捷地駕駛車輛[1]。VANET 系統主要包括3 種實體:可信機構(TA,trusted authority)、路邊單元(RSU,road side unit)和車載單元(OBU,on broad units)。TA 負責RSU以及OBU 的注冊,是一個完全可信的機構。RSU是TA 與車輛之間的橋梁,安裝在道路的兩側,方便車輛的快速訪問。OBU 負責車輛的計算任務和無線通信服務。
VANET 系統使用專用短程通信(DSRC,dedicated short range communication)協議進行通信[2],DSRC 協議符合IEEE 802.11p 標準。VANET 系統主要的通信方式分為2 種:車輛與車輛(V2V,vehicle-to-vehicle)、車輛與基礎設施(V2I,vehicle-to-infrastructure)。V2V 和V2I 都是在公開的無線信道上進行通信的,所以在VANET 系統中進行信息傳輸時很容易受到惡意者的攻擊,例如竊聽、仿冒、重放攻擊等[3]。惡意者的攻擊行為使VANET 系統中的通信隱私安全受到威脅。同時,與其他靜態的網絡結構相比,VANET 系統具有車輛高速移動和快速的網絡拓撲變化的特性,這使VANET 系統的隱私安全更容易受到惡意者的破壞[4]。
認證密鑰協商(AKA,authentication key agreement)協議能夠使參與者在公開的網絡上完成相互認證并建立安全的會話密鑰,以保護通信雙方的隱私安全。許多學者對AKA 技術做了大量研究工作,并提出了很多有價值的方案。傳統的基于公鑰基礎設施(PKI,public key infrastructure)方案[5-6],以數字證書為媒介,結合對稱與非對稱加密技術,將用戶的身份和公鑰等信息捆綁在一起,從而確保消息的完整性、身份認證和不可否認性。但是該方案需要管理大量的匿名證書和撤銷列表,存儲開銷非常大;且該方案的證書驗證過程涉及的節點數量較多,比較煩瑣,導致該方案認證效率比較低。為避免基于PKI 技術帶來的管理大量匿名證書和撤銷列表的難題,Shamir[7]引入了基于身份基礎設施的方案。身份基礎設施由用戶身份信息和一個可信的擁有用戶密鑰對的私鑰生成中心(PKG,private key generator)組成,允許用戶很容易地從自己的身份信息(例如電子郵箱、手機號碼等)中獲取公鑰,再由PKG 為用戶頒發私鑰,這樣就減輕管理大量證書帶來的開銷。基于區塊鏈[8-9]的密鑰協商方案通過利用區塊鏈的優勢,如可審計的日志、分散的體系結構和拒絕服務(DoS,denial of service),在保護用戶隱私的同時提供了用戶間的相互認證和密鑰協商。但是基于區塊鏈的認證密鑰協商方案很少考慮成員動態變化的因素,無法應對VANET拓撲快速變化的特性。無證書非對稱的群密鑰協商方案[10-11]提供了一個公開的加密密鑰,每個群成員都可以計算一個對應的解密密鑰,并且只有群成員才能正確解密通過公鑰加密的信息。該方案可以實現成員間的相互認證和密鑰協商。但是該方案沒有考慮成員的身份可追溯性和可撤銷性,無法處理群成員的惡意行為。
許多學者對中國剩余定理(CRT,Chinese remainder theorem)在身份認證和密鑰協商中的應用也進行了大量研究。文獻[12]基于CRT 提出了2 種群簽名方案,可信機構利用群成員的部分簽名生成群簽名,方案的安全性依賴于整數難分解、離散對數和橢圓曲線離散對數難題。文獻[13]提出了一種基于CRT 的車載自組網中條件隱私保護認證方案,利用CRT的密鑰管理方案為TA側的每個車輛生成一個通用域密鑰,降低了TA 的計算復雜度。
混沌系統具有對初始條件、偽隨機性和遍歷性十分敏感的特性,并具有良好的擴散和混淆特性,這對密碼學特別是密鑰系統有重要意義[14]。Kocarev 等[15]提出了一種基于切比雪夫混沌映射的公鑰加密協議,由于切比雪夫混沌映射的數學特性,在公鑰密碼體制中使用切比雪夫混沌映射是一種更加安全的方法。Cui 等[16]提出了一種車載自組網中基于混沌映射的全會話密鑰協商方案,利用擴展的切比雪夫多項式建立公鑰,實現了霧服務器和車輛群管理者之間的安全會話。
綜上所述,現有文獻提出的VANET 系統中的認證密鑰協商方案大多對車輛的匿名性、可追溯性和撤銷性等安全問題考慮不全面,并且很少考慮VANET 拓撲的動態變化。本文針對上述問題,結合中國剩余定理和切比雪夫混沌映射,提出了一種VANET 系統中群內相互認證密鑰協商協議。本文的主要貢獻如下。
1)提出了一種基于CRT的動態車輛群建立方案。TA 利用分配給車輛節點的素數信息和車輛節點返回的公鑰信息,再結合CRT 建立動態車輛群。新車輛節點加入時,群內成員不需要改變自己的私鑰,只需要TA 重新計算系統公鑰。車輛離開車輛群或TA 撤銷車輛節點時,TA 將其對應的公鑰信息修改即可。
2)提出了一種基于切比雪夫混沌映射的密鑰協商協議。密鑰協商雙方通過訪問RSU 獲取對方的素數信息,并通過獲取的素數認證對方的身份。密鑰協商發起方利用切比雪夫映射產生密鑰協商信息。接收方認證發起方對應的車輛身份后,利用切比雪夫混沌映射生成密鑰協商回應信息。本文通過BAN 邏輯模型證明了所提協議的語義安全性。
3)安全分析結果表明,和現有的文獻相比較,本文提出的認證密鑰協商協議對車輛節點的身份認證性、身份隱私性和不可否認性等VANET 系統中的通信安全問題考慮更加全面,還考慮了VANET 拓撲動態變化的特性。仿真結果表明,本文所提協議能有效降低通信消耗,并且顯著減少了計算開銷。
本文提出的AKA 協議的系統模型如圖1 所示。該模型中的VANET 主要由3 個實體組成,即TA、RSU 和OBU。

圖1 AKA 協議的系統模型
TA。TA 擁有強大的計算能力、存儲能力,是一個完全可信的機構。在VANET 系統中,合法的RSU 和OBU 都需要在TA 進行注冊,然后TA 為注冊實體分配參數。當有新的車輛節點加入車輛群或車輛節點離開車輛群使VANET 拓撲發生改變時,TA 會實時更新系統公鑰。當有注冊車輛進行惡意行為時,TA 會對該車輛的身份進行追溯并撤銷其合法身份。
RSU。RSU 安裝在道路的兩側,連接車輛和可信中心。RSU 負責管理車輛假名和素數信息表;當車輛通過RSU 的驗證后,可以得到密鑰協商對象的素數。相鄰RSU 之間也可以進行通信,當車輛群進行下一個RSU 覆蓋范圍時,當前RSU 將假名和素數信息表發送給下一個RSU。
OBU。每一個車輛都配備一個OBU,OBU 負責車輛的通信和計算任務。
本文提出的認證密鑰協商協議的安全性基于2種難破解問題,即計算離散對數問題(CDLP,computational discrete logarithm problem)和Zhang[17]提出的基于擴展切比雪夫混沌映射的計算Diffie-Hellman 問題(CDHP,computational Diffie-Hellman problem)。
CDLP。給定一個P階有限循環乘法群G=〈g,P是一個大素數,g1,g2,…,gn是乘法群G的生成元。選定任意乘法群G的生成元g和y,計算x滿足y=gx,其中0≤x≤|G|。
基于擴展切比雪夫混沌映射的CDHP。給定3 個參數x∈(-∞,+∞)、Tα(x)modn和Tβ(x)modn。其中n是一個大素數。計算Tαβ(x)modP。
通常情況下,想要在多項式時間內解決CDLP和基于擴展切比雪夫混沌映射的CDHP是非常困難的。這2 種難破解問題在密碼學中的應用十分廣泛,例如數字簽名技術、匿名認證技術和密鑰協商等。
為滿足VANET 系統中車輛間安全通信的需求,本文提出的AKA 協議包含7 個階段,即系統初始化階段、注冊階段、相互認證和密鑰協商階段、VANET 拓撲變化階段、私鑰更新階段、假名更新階段、RSU 切換階段。協議涉及的參數及定義如表1 所示。

表1 協議涉及的參數及定義
TA 負責系統初始化,定義2 個單向哈希函數H0,H1:{0,1}*→,i∈{0,1},li為哈希函數輸出的位寬。對于切比雪夫混沌映射,TA 選擇公共參數x、大素數n和系統私鑰δsk。
RSUi和車輛的OBUi在TA 完成注冊后身份才合法。
1)OBUi的注冊
假設現有一個車輛群,該群里現在有k個車輛成員{V1,V2,…,Vk}。車輛節點Vi在進行身份注冊時,Vi上的OBUi將Vi的真實身份IDVi通過安全信道發送給 TA。TA 收到消息后,計算Vi的假名SIDVi=H0(IDVi||δsk)并公布在整個系統中。TA 選擇一個大素數pi(i=1,2,…,k),滿足i≠j時pi≠pj,且在pi-1中有2 個大素數。TA 選擇系統公共參數g,g是指數運算的原根,也是所有乘法群的生成元。TA 將{SIDVi,pi}通過安全信道發送給Vi。
Vi收到TA 發來的{SIDVi,pi}后,隨機選擇自己初始密碼xi,0∈,計算Vi的公鑰yi≡·modpi。Vi將{yi}通過安全信道發送給TA。TA將車輛群內車輛的公鑰的有效時間劃分為L個時間片段,在L個時間片段內,車輛節點的公鑰yi保持不變。當L個時間片段用完時,Vi會重新選擇私鑰并重新計算公鑰yi,TA 也會更新系統公鑰c。
2)RSUi的注冊
RSUi的注冊過程和OBUi的注冊過程類似,將真實身份IDRi通過安全信道發送給TA,TA 計算RSUi的假名 SIDRi=H0(IDRi||δsk),并分配給RSUi一個大素數pk+1。RSUi選擇私鑰xk+1,0∈,并計算對應公鑰yk+1返回給TA。
3)TA 構建群組
TA 根據接收到的來自k個車輛節點的yi(i=1,2,…,k)和來自RSUi的yk+1構建同余方程組。

其中,c為系統公鑰,利用中國剩余定理可以計算該同余方程組為

其中,P=p1p2…pk+1,表示對pi取模的逆。TA 計算 SPi=H1(SIDVi||pi),并將{SIDVi,pi}發送給經過注冊的RSUi。RSUi根據收到的{SIDVi,pi}生成一個Vi假名和素數對應的列表λSIDV,p。
根據上面的描述,系統公布的參數為{x,n,g,SIDVi,SIDRi,c,P,SPi}。
在該階段,車輛節點Vi和Vj在公開網絡上完成相互認證和密鑰協商,流程如圖2 所示。具體步驟如下。

圖2 認證密鑰協商流程
Step1Vi通過發送請求給RSUi來獲取Vj的素數pj。Vi選擇時間戳Tvi,計算Bvi=H1(SIDVi||pi||Tvi)、AIDVi=SIDVi⊕H1(pi||Tvi),然后發送{Bvi,Tvi,AIDVi,SIDVj}給RSUi。
Step2RSUi對接收到的消息進行驗證。RSUi收到消息后,首先通過TRi-Tvi<Δt檢查Tvi的新鮮度。檢驗通過后,計算=AIDVi⊕H1(pi||Tvi),通過判斷等式是否成立,判斷消息請求方身份的合法性,只有群內成員才能通過驗證。如果等式不成立,拒絕請求消息;如果等式成立,RSUi將{pj,TRi}發送給Vi。
Step3Vi驗證來自RSUi的消息,并發送密鑰協商請求消息給Vj。Vi收到{pj,TRi}后,首先由TvRi-TRi<Δt檢驗時間戳TRi的新鮮度,TvRi是系統當前時間戳。然后通過等式 SPj=H1(SIDVj||pj)是否成立來判斷來自RSUi消息的正確性。驗證通過后,Vi選擇當前時間戳Tij,選擇隨機數α,計算ξ1≡Tα(x)modn。Vi對密鑰協商請求進行簽名,隨機選擇rvi∈,確定時間片段tvi,計算。Vi將簽名消息發送給Vj。
Step4Vj檢查來自Vi消息的時間戳,然后向RSUi訪問Vi對應的素數pi。Vj收到消息后,通過Trj-Tij<Δt檢驗Tij的新鮮度,Trj是系統當前時間戳。驗證通過后,生成時間戳Tvj,計算Bvj=H1(SIDVj||pj||Tvj)、AIDVj=SIDVj⊕H1(pj||Tvj)。Vj發送素數請求消息{Bvj,Tvj,AIDVj,SIDVi}給RSUi。
Step5RSUi對接收到的消息進行驗證。RSUi收到消息后,首先通過TRj-Tvj<Δt檢查時間戳Tvj的新鮮度,TRj是系統當前時間戳。檢驗通過后,計算,通過等式是否成立判斷消息請求方身份的合法性。如果等式不成立,拒絕請求消息;若成立,RSUi將{pi,TRj}發送給Vj。
Step6Vj驗證來自RSUi的消息,然后對Vi的身份進行認證,最后發送密鑰協商消息給Vi。Vj通過TvRj-TRj<Δt判斷時間戳TRj的新鮮度,TRj是系統當前時間戳。通過等式 SPi=H1(SIDVi||pi)判斷來自RSUi素數的正確性。驗證通過后,對Vi的身份信息進行認證,具體方法如下:計算yi≡c(modpi),判斷等式是否成立。如果等式不成立,拒絕來自Vi的密鑰協商請求。如果等式成立,Vj隨機選擇β和時間戳Tji,計算ξ2≡Tβ(x)modn,sk≡Tβ(ξ1)modn,Mij=H1(sk||ξ1||ξ2),δ≡modn。然后,Vj對密鑰協商消息進行簽名,隨機選擇rvj∈,確定時間片段tvj,計算。Vj發送消息{,tvj,Tji,ξ2,δ}給Vi。
Step7Vi檢驗Vj的密鑰協商消息,檢驗通過后,會話密鑰建立成功。Vi首先通過Tri-Tji<Δt對時間戳Tji進行檢驗,Tri是系統當前時間戳。時間戳檢驗通過后,再認證Vj的身份,即判斷是否成立。認證通過后,計算 sk′≡Tα(ξ2)modn和=H1(sk′||ξ1||ξ2),判斷等式δ′≡(sk′)modn=δ成立。若成立Vi,Vj之間會話密鑰協商成功,會話密鑰即為sk≡Tα(Tβ(x))modn=Tβ(Tα(x))modn。
1)車輛節點的加入
當新的車輛節點Vk+2想要成為車輛群的一員時,Vk+2首先需要向TA 發送加入請求。TA 接收到Vk+2的請求后,選擇新的大素數pk+2發送給Vk+2,并確保g是的生成元。Vk+2接收到pk+2后,隨機選擇初始密鑰xk+2,0∈,計算公鑰yk+2≡·(modpk+2)并發送給TA。TA 收到yk+2后對系統公鑰c進行更新,并將{SIDVk+2,pk+2}發送給RSU。此時Vk+2就成為車輛群的一員。
從Vk+2的加入過程可以發現,新的車輛節點的加入,不會導致原始群內車輛的密鑰發生改變,TA只需要重新計算c。
2)車輛節點的追溯與撤銷
當經過注冊的車輛節點Vi在車輛群內發布惡意消息時,TA 會對其合法身份進行追溯和撤銷。Vi在RSUi覆蓋范圍內發布惡意消息時,RSUi首先獲取Vi在發送惡意消息使用的pi,然后在假名和素數列表λSIDV,p中找到TA 為Vi生成的當前假名。得到Vi的當前假名SIDVi后,發送假名SIDVi和pi給TA。TA 通過等式H0(IDVi||δsk)=SIDVi、pi對應的l和假名更新種子δIDi判斷該假名對應車輛的真實身份。獲取Vi的真實身份后,TA 將會對Vi在群內的合法身份進行撤銷。此外,當經過注冊的合法車輛節點Vj離開TA 建立的車輛節點群時,TA 也會撤銷Vj的身份。
TA 撤銷群成員Vi在群內的合法身份,只需要將Vi對應的公鑰信息yi修改為另一個隨機數,其他車輛節點信息保持不變,然后更新系統公鑰c。此時Vi就被撤銷了,其密鑰將不能生成有效的密鑰協商信息。
從撤銷Vi的過程看,如果系統想要撤銷一個車輛節點,TA 只需要改變Vi對應的公鑰并重新計算c。
Vi在第tvi個時間片段的私鑰為,則在tvi+1個時間片段內Vi的私鑰為。當tvi+1個時間片段對應的私鑰生成后,OBUi會立刻將第tvi個時間片段的私鑰刪除。若tvi=L,車輛節點Vi輸出的第tvi+1個時間片段的密鑰為空串。當Vi的時間片段用完時,Vi重新選擇私鑰并重新計算對應公鑰yi,TA 也會更新系統公鑰c。
如果車輛自始至終都使用一個假名,這個假名就會被視為該車輛對應的真名。攻擊者通過收集該車輛假名對應的信息,就可以對該車輛進行攻擊。為了解決使用固定假名導致的安全問題,本文采用假名更新方案對車輛對應假名進行更新。TA 給每一個注冊車輛都分配一個假名更新種子δIDi,當車輛節點Vi訪問Vj當前假名對應的素數后,RSU 向TA 發送假名更新請求,TA 計算Vj對應的下一個假名并公布,記錄對應的素數pj和l。然后將假名素數對應列表發送給RSU。
本文協議中的車輛節點的假名和素數對應表λSIDV,p由RSU 直接存儲和維護,車輛節點不需要通過訪問TA 獲取λSIDV,p,而是直接通過訪問RSU獲取。當車輛節點Vi從RSUi覆蓋的區域進入經過注冊的RSUj覆蓋的區域后,Vi向RSUj發送獲取Vj的素數的請求,λSIDV,p在RSU 間的傳遞如圖3所示。

圖3 λSIDV,p 在RSU 間的傳遞
BAN 邏輯[18]由Burrows、Abadi 和Needham 提出,主要用于對認證協議的可靠性形式化證明,來確定信息交換面對任何惡意節點時是否安全。本節通過BAN 邏輯對本文提出的認證密鑰協商協議的安全性進行證明。
1)BAN 邏輯符號
在對本文協議安全證明過程中,使用的BAN邏輯符號如下。
①P|≡X:P相信消息X是真實可信的。
②P?X:P發現一條包含X的消息。
③P|~X:P在某個時間段發送過包含X的消息。
④P|?X:P擁有消息X的管轄權。
⑤#(X):消息X是新鮮的。
⑥(X,Y):X和Y是消息(X,Y)的一部分。
⑦〈X〉Y:使用密鑰Y加密消息X。
⑧PQ:K是P和Q共享的密鑰。
2)BAN 邏輯規則
本文使用4 個BAN 邏輯規則R1~R4 對協議安全進行形式化證明。
①信息含義(message-meaning)規則
②隨機數證明(nonce-verification)規則
③管轄權(jurisdiction)規則
④新鮮度(freshness)規則
3)建立2 個協議安全證明目標
為了表明群內車輛節點相互認證密鑰協商是安全的,需要實現2 個協議安全證明目標Goal1 和Goal2。
Goal1:Vj|≡ξ1。Vj相信Vi發來的密鑰協商信息。
Goal2:Vi|≡ξ2。Vi相信Vj發來的密鑰協商信息。
4)理想化協議形式
將2.3 節認證和密鑰協商協議流程的普遍形式轉化為理想化形式。


5)前提假設
在對協議進行安全證明之前,需要對BAN 邏輯做出如下假設。

6)協議安全性證明
通過分析理想化協議形式的安全性,得到2 個協議安全證明目標Goal1 和Goal2。



從Goal1 和Goal2 的證明過程可以看出,本文提出的協議能夠有效地實現群內成員相互認證密鑰協商的安全證明。
利用BAN 邏輯模型,模擬了協議中涉及的所有消息,建立了2 個協議安全證明目標。并通過合理的假設前提,完成了對消息來源的驗證、消息新鮮度的驗證和消息來源可信度的驗證。最后根據模型規則證明了預先設定的2 個目標,完成了對協議的形式化證明。任何認證密鑰協商協議都必須滿足形式化安全證明的要求,否則提出的協議很可能存在安全漏洞。
為了在VANET 系統中安全通信,認證密鑰協商協議除了需要對協議的語義安全進行形式化證明,還需要滿足VANET 系統中一些基本安全需求[19],如身份認證性、身份隱私性、消息不可否認性、前向和后向安全性。同時協議還需要能夠抵御各種惡意攻擊,如女巫攻擊、OBU 和RSU仿冒攻擊、重放攻擊。
1)身份認證性。本文提出的認證密鑰協商協議中,Vj通過檢驗Vi對密鑰協商消息的簽名來認證Vi的身份,即判斷是否成立。所有簽名只有經過注冊的群成員使用私鑰才能生成。攻擊者只有破解了CDLP 和基于擴展的切比雪夫混沌映射的CDHP 才能生成正確的簽名信息。通過對簽名信息的檢驗,車輛能夠對接收消息的身份進行驗證和消息完整性檢驗。所以該密鑰協商協議可以實現Vi和Vj的相互身份認證。
2)身份隱私性。整個密鑰協商過程中,V i和Vj都使用假名進行通信,只有TA 知道它們的真實身份。如果攻擊者想要通過車輛節點的假名SIDVi=H0(IDVi||δsk)知道車輛的真實身份,就必須破解單向哈希函數難題并獲取系統私鑰。因為單向哈希函數難題解決的困難性和系統私鑰的隱私性,車輛假名可以有效保護車輛的真實身份,實現車輛節點在認證密鑰協商過程中的隱私性。
3)消息不可否認性。當車輛Va在RSUi覆蓋范圍內發布惡意消息時,如果Va不是合法的車輛群內成員,其他車輛群內成員可以直接拒接Va發布的消息;如果Va是車輛群內成員,RSUi通過檢查Va的發布信息使用的素數pa,在λSIDV,p找到pa對應的假名SIDVa,再將假名和對應素數pa發給TA。TA通過H0(IDVa||δsk)=、pa對應的l和假名更新種子δIDa就找到Va的真實身份,完成了對車輛身份的追溯,確保車輛發送消息的不可否認性。
4)前向和后向安全性。Vi選擇隨機數α,計算出ξ1≡Tα(x)modn。Vj選擇隨機數β,計算出ξ2≡Tβ(x)modn。會話密鑰skt≡Tαβ(x)modn。Vi和Vj都是通過選擇隨機數計算當前會話密鑰,攻擊者無法通過skt推導出skt-1或者skt+1。所以該方案的會話密鑰具有前向和后向安全性。
5)抵御女巫攻擊。攻擊者創建大量假名車輛身份發送錯誤信息,以獲得對對等網絡的控制。在本文提出的認證密鑰協商協議中,會話雙方都可以通過訪問RSU 對接收消息中假名對應的素數進行訪問,如果沒有獲取到該假名對應的素數,可以直接拒絕接收的信息;如果獲取到對應的素數,就可以利用該素數對消息的簽名進行驗證。在這個過程中,會話車輛并不關注其他車輛對該接收消息的信任度,而是通過素數對簽名消息進行驗證。所以本文提出的協議能夠有效抵御女巫攻擊。
6)抵御OBU 和RSU 仿冒攻擊。對于OBU 仿冒攻擊,攻擊者A想要仿冒OBUi或OBUj來完成會話密鑰協商。如果A不是合法的群成員,就無法通過RSUi的檢驗。RSUi根據A發來的消息計算,并判斷等式是否成立,如果等式不成立,RSUi將會拒絕A的素數請求。如果A是經過注冊的群成員,那么A就能成功的獲取密鑰協商的發起方和接收方對應的素數;但是密鑰協商雙方通過訪問RSUi都知道對方對應的素數pi,然后計算y i≡c(modpi),對對方生成的簽名進行檢驗;攻擊者沒有密鑰協商雙方的密鑰xi,t,xj,t,就無法生成有效的簽名。所以無論A是不是群成員都無法仿冒OBUi或OBUj,本文協議可以抵御仿冒攻擊,對于RSU 仿冒攻擊,當車輛節點Vi向RSU 發送素數請求后,得到RSU的回答。Vi通過 SPj=H1(SIDVj||pj)檢驗來自RSU 的信息,λSIDV,p只有進過注冊的合法的RSU才能獲取,其他RSU 無法獲取。所以本文協議可以有效抵御RSU 仿冒攻擊。
7)抵御重放攻擊。在車輛進行認證和密鑰協商協商過程中,惡意車輛監聽車輛節點和RSUi之間的通信,并在當前會話中重放身份驗證消息,以模擬該車輛。為避免這種情況,RSUi驗證由車輛節點生成的時間戳,由于時間戳是新鮮的,因此重放攻擊消息無法通過驗證。同樣,車輛節點雙方進行消息的傳輸的過程中,都使用時間戳來保證消息的新鮮度。此外,每個會話都使用不同的時間戳,這增加了對重放攻擊的抵抗力。所以本文協議可以有效抵御重放攻擊。
VANET 系統具有車輛快速移動和網絡拓撲快速變化的特性,所以VANET 系統對通信性能要求比較高。下面將從安全性、計算開銷和通信開銷這幾個角度對本文協議進行分析,并和Cui[16]方案、Bagga[20]方案和Ying[21]方案進行比較。
安全是VANET 系統中車輛間進行通信最基本的需求。本文對幾種VANET 系統中認證和密鑰協商方案的安全性進行了對比,具體如表2 所示。Cui方案、Bagga 方案和Ying 方案都忽略了車輛認證密鑰協商的不可否認性、身份可撤銷性和群組動態性的安全需求。Cui 方案無法完成身份的雙向認證,Bagga 方案無法保證會話密鑰的前向和后向安全性,Ying 方案也忽略了車輛身份雙向認證性且不可以抵御RSU/Fog 仿冒攻擊。本文協議滿足所有安全需求,有較高的安全性。
本文使用OpenSSL-1.0.1 密碼學庫,在配置為Intel(R)Core(TM)i5-8500、RAM 為2 GB的Windows 10 系統及Visual Studio 2017 的編譯環境下對幾種方案涉及的密碼學操作進行了模擬,密碼學運算的平均執行時間如表3 所示。其中Th、Tc、Texp、Tecm、Teca、Tsym、Tasy分別表示進行一次哈希運算、切比雪夫映射、模指數運算、橢圓曲線中的點乘運算、橢圓曲線中點的加法運算、對稱加密/解密運算、非對稱加密/解密運算的執行時間。

表3 密碼學運算的平均執行時間
表4 給出了各方案在認證密鑰協商過程中,在密鑰協商發起方Vi、密鑰協商接收方Vj和RSU 處需要執行的密鑰學運算次數和總的計算開銷。Cui 方案需要執行17 次單向哈希運算、18 次切比雪夫映射和3 次對稱加密運算。所以Cui 方案總的計算開銷為 17Th+18Tc+3Tsym≈362.86 ms。Bagga 方案需要執行10 次單向哈希運算、12 次橢圓曲線乘法運算和4 次橢圓曲線加法運算。所以 Bagga 方案總的計算開銷為10Th+12Tecm+4Teca≈310.19 ms。Ying 方案需要執行22 次單向哈希運算、4 次模指數運算和4 次非對稱加密/解密運算。所以Ying 方案總的計算開銷為22Th+4Texp+4Tasy≈272.23 ms。本文協議需要執行16 次單向哈希函數、6 次切比雪夫映射和4 次模指數運算,所以總的計算開銷為 16Th+6Tc+4Texp≈223.25 ms。

表4 各方案在認證密鑰協商過程中的計算開銷
各方案計算開銷對比如圖4 所示。從圖4 可以看出,Cui 方案的計算開銷最大,本文協議的計算開銷明顯低于其他方案。與Cui 方案相比,本文協議的計算開銷減少了約38%。計算開銷所導致就是通信時延。VANET 系統對通信時延特別敏感,因為只有低的通信時延才能滿足VANET 拓撲快速變化的需求。所以相較于其他認證和密鑰協商方案,本文協議擁有低通信時延的屬性。

圖4 各方案計算開銷對比
本文假設哈希摘要為160 bit,時間戳為32 bit,ID 為160 bit,橢圓曲線點乘為320 bit,切比雪夫映射為480 bit,非對稱加密為1024 bit,對稱加密為256 bit。各方案在密鑰協商過程中需要發送的消息數量和總的通信開銷如表5 所示。Cui 方案在密鑰協商過程中需要發送4 條消息,分別是{h(ki),yi}、{sidi,zi,Ci,MACi}、和{Di},總的通信開銷為2 464 bit。Bagga 方案在密鑰協商過程中需要發送 3 條消息,分別是{,Sigx,t1}、{,SigSK,t2}和{,Vm,t3},總的通信開銷為2 176 bit。Ying 方案在密鑰協商過程中需要發送 4 條消息,分別是{DIDVi,j,CVi,nj,}、{DIDRi,CVi,nj,}、{C3,Mi,}和{C3,Mi,},總的通信開銷為3 392 bit。本文協議在密鑰協商過程中需要發送6 條消息,分別是{Bvi,Tvi,AIDVi,SIDVj}、{pj,TRi}、{,tvi,Tij,ξ1}、{Bvj,Tvj,AIDVj,SIDVi}、{pi,TRj}和{,tvj,Tji,ξ2,δ},總的通信開銷為3 232 bit。

表5 各方案在密鑰協商過程中需要發送的消息數量和總的通信開銷
各方案通信開銷對比如圖5 所示。從圖5 可以看出,Ying 方案通信開銷最大,因為方案中使用了非對稱加密解密運算。Bagga 方案通信開銷最小。本文協議的通信開銷比Ying 方案低但高于Cui 方案和Bagga 方案,主要是本文利用了簽名機制驗證群成員身份并使用了切比雪夫映射進行密鑰協商,在認證和密鑰協商過程中都保證了車輛節點通信的安全。從4.1 節的分析也可以看出,相較于Cui 方案和Bagga 方案,本文協議對VANET 系統中認證密鑰協商的安全性考慮更加全面。

圖5 各方案通信開銷對比
本文提出了一種VANET 系統中的基于中國剩余定理的群內相互認證密鑰協商協議。利用中國剩余定理建立動態車輛群,以適應VANET 拓撲變化。群內成員利用簽名機制實現相互身份認證,并利用切比雪夫混沌映射實現車輛間的密鑰協商。采用假名更新和私鑰更新機制,保護通信雙方隱私安全。通過BAN 邏輯模型證明了該協議的語義安全。最后,仿真結果表明,相較于現有方案,所提協議對VANET 系統中通信的安全性考慮更加全面,能有效降低通信消耗,并且顯著減少了計算開銷。