張曉均,唐浩宇,付 紅,王文琛
(西南石油大學計算機科學學院,四川 成都 610500)
智能車載網絡VANET(Vehicle Ad-hoc NETwork)作為物聯網在智能交通領域的重要應用[1],可以通過實現特殊車輛避讓、碰撞預警等功能來幫助減輕交通壓力,減少交通事故,提高交通運輸效率和道路安全性,因而受到工業界和學術界的廣泛關注。
智能車載網絡架構模型主要包括3類通信實體[2,3]:完全可信的第三方權威機構TA(Trusted Authority)、車載通信單元OBU(On Board Unit)和路邊基站單元RSU(Road Side Unit)。其中可信機構TA負責維護整個系統,結合應用服務器來計算發行系統公開參數,可以廣播交通預警等。通過車載通信單元OBU來實現智能車輛節點之間的實時信息交互,如異常車輛狀態預警、慢減速車輛預警等。通過實時信息交互可以有效減少交通事故的發生,大大提高交通效率,這種通信稱為V2V(Vehicle to Vehicle)通信。車輛節點可以與路邊基站單元RSU進行信息共享,即V2R(Vehicle to RSU)通信[4-7]。路邊基站單元RSU是部署在道路兩側的基礎設施,可以和車輛節點進行通信完成實時信息交互,即R2V(RSU to Vehicle)通信。信息交互時,RSU會驗證OBU發出的信息是否真實,如果遇到緊急情況,RSU可以直接向TA發送經驗證的信息,保證TA及時發出交通預警,減少交通事故的發生,同時也減輕了TA的負擔。V2V、V2R、R2V模式均使用專用短程通信技術DSRC(Dedicated Short Range Communications)進行通信。
網絡的開放性和脆弱性使智能車載網絡容易遭受各種安全攻擊[8-10],進而導致交通事故的發生,對人們的生命財產安全造成威脅。比如,惡意車輛可能會偽裝成緊急車輛進行危險操作,也可能發布一些關于交通事故的假消息等。因此,車輛節點在加入車聯網并能在其中與其他合法車輛或RSU通信時,必須先通過身份認證[11,12]。同時,一個安全的VANET還需要具有前向安全性、數據機密性,并能抵抗常見的攻擊,如重放攻擊。
在遭受網絡攻擊時,用戶個人隱私數據極有可能泄露,這將會對用戶造成極大的困擾,且對智能車載網絡的推廣應用也十分不利。所以,需要確保身份隱私性,即任何其他車輛和路邊基站單元都不能獲取到車輛的真實身份信息[13-15]。為了保證車輛和附近RSU可以安全保密地通信,還要求簽訂一個會話密鑰交換協議。
近年來,基于橢圓曲線加密和雙線性對算法的認證方案已經廣泛應用在智能車載網絡領域。Wei等[16]和Zhang等[17]基于橢圓曲線加密ECC(Elliptic Curve Cryptography)和Shamir門限技術提出了群組成員保護通信秘鑰的方案,以較低的通信開銷保護交通緊急消息的安全。文獻[18,19]也提出了解決用戶隱私保護的匿名認證方案及無證書密碼體制。Xiong等[20]提出了一種基于中國剩余定理CRT(Chinese Remainder Theorem)的具有動態隸屬資格的條件隱私保護認證方法,RSU可以同時驗證大量接收到的消息,從而提升了驗證效率。文獻[21]提出了一種基于無證書密碼和橢圓曲線密碼的無證書條件隱私保護認證方案,用于VANET中的安全車輛和基礎設施通信。Song等[22]提出了一種基于雙線性配對的智能車載網絡條件隱私保護認證方案,該方案采用路邊單元中的防篡改裝置與車輛一起完成信息簽名和認證。
本文提出了適用于智能車載網絡環境下的匿名認證與密鑰交換協議,已經匿名化處理過的車輛可以匿名向附近的RSU發送身份認證信息,當RSU通過認證之后,計算出一個消息認證碼作為響應信息發送給請求認證車輛,以實現雙向認證,進而防止惡意RSU的攻擊。此外,在匿名認證的同時還能進行會話密鑰的協商,以用于后續的安全保密通信。
G1是一個生成元為P的q階加法循環群,其中q為安全素數。G2是一個q階乘法循環群,雙線性對映射e:G1×G1→G2滿足以下3個性質:
(2) 非退化性:?Q,R∈G1,使得e(Q,R)≠1;
(3) 可計算性:對于?Q,R∈G1,存在多項式時間算法能計算出e(Q,R)。
智能車載網絡中匿名認證與密鑰交換協議的系統網絡模型(見圖1)包含3種通信實體:可信中心TA、路邊基站單元RSU和車載單元OBU。下面分別對這3類通信實體進行介紹:
(1)可信中心TA。TA可作為智慧交通管理中心,是一個完全可信的第三方機構,具有高存儲和高計算能力,主要為系統頒布公開參數,為RSU分配公私鑰,以及為智能車輛生成私鑰和注冊信息。
(2)路邊基站單元RSU。RSU是固定在道路兩側的信息基礎設施,可以與智能車輛進行雙向可認證保密通信。
(3)智能車載單元OBU。OBU使智能車輛可以和附近的RSU或智能車輛進行通信,可以與RSU進行相互認證以及密鑰交換。

Figure 1 System network model圖1 系統網絡模型
在開放的網絡環境下,攻擊者可通過竊聽攻擊、惡意追溯攻擊來獲取節點之間傳輸的消息,這極可能造成用戶身份隱私和相關重要信息泄露的問題。此外,攻擊者也可通過篡改、偽造、重放攻擊造成重大交通事故,對人身安全造成威脅。因此,基于智能車載網絡場景提出的協議需要滿足以下安全特性:
(1)身份匿名性:任何其他車輛或RSU不能從竊聽到的消息中獲得車輛的真實身份信息,在某些場景下需要實現絕對匿名。
(2)身份認證:智能車載網絡場景的有效實施必須保證節點間能相互認證,即保證通信雙方的身份真實性,避免偽造、篡改攻擊。
(3)認證密鑰交換:對于智能車載網絡場景中有保密需求的數據,要保證其無法被未經授權的第三方知曉信息內容。為保證車載網絡中數據傳輸的機密性,車輛和RSU需要在安全通信前完成會話密鑰交換。
智能車載網絡中匿名認證與密鑰交換協議主要包括4個階段:系統初始化、智能車輛注冊、匿名認證、認證密鑰交換。
(1)系統初始化階段。可信中心TA通過以下步驟生成系統公開參數:
①TA選取2個安全素數p,q,設置定義在y2=x3+ax+bmodp上的非奇異橢圓曲線E。TA選取一個生成元為P的q階加法循環群G1,構造一個雙線性對映射e:G1×G1→G2,其中G2是一個q階乘法循環群。
③TA設置安全哈希函數,H1={0,1}*→G1,H2:G2×{0,1}*→Zq,h1:G1×{0,1}*×G1→Zq,h2:G1×G1→{0,1}l,其中l為會話密鑰長度。

(2)智能車輛注冊階段。在此階段,智能車輛V需要向可信中心TA進行注冊,以便安全地和附近的RSU進行信息交互。首先,智能車輛會將其真實的身份信息IDV發送給TA以請求進行注冊,如果身份信息不合法則拒絕注冊請求。如果身份信息合法,則TA以密鑰生成中心KGC(Key Generation Center)的角色為申請注冊的智能車輛生成對應私鑰和相應的注冊信息。具體注冊操作步驟如下所示:
①TA為申請注冊的智能車輛V計算其私鑰SKIDV=skH1(IDV)。
②TA為智能車輛計算一個身份標識符IndexIDV=e(H1(IDV),Ppub),這個身份標識符可作為智能車輛的匿名身份信息,與智能車輛真實身份信息IDV一一對應,且只由IDV決定。
③TA為智能車輛計算注冊狀態信息索引號S=H2(IndexIDV‖aux)P,其中aux為附加信息,如服務類型、注冊信息有效期等。在后續驗證階段,RSU可根據此索引號在數據庫中查找智能車輛注冊信息以進行驗證。
最后,TA通過安全信道將私鑰和注冊信息(SKIDV,S,IndexIDV,aux)發送給申請注冊的智能車輛,并通過安全信道將智能車輛的注冊信息(S,IndexIDV,aux)發送給附近所有的路邊單元RSU,然后RSU將此智能車輛注冊信息保存到后臺數據庫。
(3)匿名認證階段。在此階段,身份已經匿名的智能車輛V向附近的路邊基站單元RSU申請身份認證并發送認證請求消息。具體計算過程如下所示:
②選取一個認證序列號nonce∈{0,1}*,計算認證符δ=(h1(S‖nonce‖QRSU)+x)-1SKIDV。
③計算會話密鑰K=h2(W‖W′)。
最后,申請認證的智能車輛IDV將認證請求信息Auth=(δ,nonce,W′,S′)發送給附近的路邊基站單元RSU。
(4)認證密鑰交換階段。在這個階段,當接收到認證請求信息Auth=(δ,nonce,W′,S′)時,RSU將會進行一系列操作來完成對智能車輛的認證以及密鑰的協商。具體過程如下所示:
②RSU在數據庫中根據恢復出的注冊狀態信息索引號S定位身份標識符IndexIDV,并驗證等式IndexIDV=e(δ,h1(S‖nonce‖QRSU)P+W)是否成立。
③如果等式成立,則計算會話密鑰K=h2(W‖W′)。
④RSU利用消息認證碼函數MAC計算MACK(δ‖nonce+1)作為響應信息發送給請求認證的智能車輛。
智能車輛一旦接收到從附近RSU發出的響應信息MACK(δ‖nonce+1),就使用會話密鑰K計算出消息認證碼進行比對。如果計算結果相同,則表示智能車輛可以以匿名的方式與附近RSU實現身份認證與密鑰協商功能,并且后續可以安全地和附近RSU進行通信。若計算結果不同,則重啟協議。

e(δ,h1(S‖nonce‖QRSU)P+W)=e((h1(S‖nonce‖QRSU)+x)-1SKIDV,h1(S‖nonce‖QRSU)P+W)=e((h1(S‖nonce‖QRSU)+x)-1skH1(IDV),h1(S‖nonce‖QRSU)P+xP) =e((h1(S‖nonce‖QRSU)+x)-1skH1(IDV),(h1(S‖nonce‖QRSU)+x)P)=e(H1(IDV),Ppub)=IndexIDV
協議安全性分析需要證明該協議具有身份的匿名性與可認證性,并具有認證密鑰交換的功能。
定理1基于智能車載網絡的匿名認證與密鑰交換協議滿足身份的完全匿名性以及可認證性。

因此,基于智能車載網絡的匿名認證與密鑰交換協議滿足身份的匿名性和可認證性。
定理2基于智能車載網絡的匿名認證與密鑰交換協議可實現可驗證的密鑰交換功能。

本節將基于智能車載網絡的匿名認證與密鑰交換協議與基于雙線性對映射設計的文獻[23]中協議、APKI協議[24]和EAAP協議[25]進行計算開銷分析與比較。協議中所有算法的實現環境為:Windows 10操作系統,Intel?CoreTMi5-2320 3.0 GHz 處理器,8 GB 內存。所有算法都使用C語言的版本號為5.6.2密碼算法基礎函數庫MIRACL實現,為了后續可以更方便地進行計算開銷分析,用符號Pair,Exp,Mult,mult,Hash,hash,Add,Inv和Exp來分別表示雙線性對運算時間、普通模指數運算時間、橢圓曲線中的倍點運算時間、普通模乘法運算時間、映射到循環群中的哈希運算時間、普通哈希運算時間和橢圓曲線上的加法運算時間、模逆運算時間和雙線性對冪運算時間,以及用符號Mac表示計算消息認證碼的運算時間。
在文獻[23]中,分析得知當車輛進入一個RSU通信范圍之前,車輛需要提前獲取TA頒發的混淆值和偽身份列表,并基于每一個偽身份列表和已知參數生成特定點后將認證消息發送給RSU。在此過程中,車輛需要執行3次普通哈希運算以確保完整性,然后執行2次倍點運算和1次雙線性對冪運算來生成智能車輛簽名。因此,智能車輛的計算開銷為3hash+2Mult+Exp。而RSU在接收到其通信范圍內的車輛發送的認證請求后,需要執行1次雙線性對運算、2次普通哈希運算和1次雙線性對冪運算運算驗證車輛身份。因此,RSU總的計算開銷為Pair+2hash+Exp。
對APKI協議[24]分析得知,RSU生成廣播簽名給附近需要認證的智能車輛,智能車輛收到后執行1次普通哈希運算和1次雙線性對運算驗證RSU的合法性。智能車輛通過執行4次倍點運算和1次普通哈希運算生成簽名,所以智能車輛端總的計算開銷為Pair+4Mult+2hash。RSU收到認證請求后執行1次普通哈希運算驗證其完整性,執行2次雙線性對運算、2次倍點運算和2次普通哈希運算完成簽名消息的認證,因此RSU總的計算開銷為2Pair+2Mult+2hash。
對EAAP協議[25]分析得知,智能車輛需要執行6次模指數運算、1次普通模乘法運算、3次橢圓曲線上的加法運算、1次普通哈希運算和1次逆運算得到匿名證書,然后執行1次模指數運輸、1次普通哈希運算、1次逆運算和1次橢圓曲線上的加法運算得到簽名信息,并最終發送給TA進行驗證,在此方案中TA相當于本文方案的RSU。因此,智能車輛的計算開銷為7Exp+mult+4Add+2hash+2Inv。當接收到驗證信息后,接收方執行4次普通模乘法運算、7次模指數運算、2次逆運算、2次普通哈希運算和2次雙線性對運算完成驗證。因此,接收方的計算開銷為4mult+7Exp+2Inv+2hash+2Pair。
在本文協議中,車輛需要執行2次倍點運算得到W和W′,執行1次橢圓曲線上的加法運算得到S′。然后執行1次倍點運算、1次普通哈希運算和1次逆運算得到簽名δ。最后再執行1次普通哈希運算得到會話密鑰K。因此,智能車輛在計算認證消息時總的計算開銷為3Mult+Add+2hash+Inv。當RSU對智能車輛進行認證時,需要執行1次倍點運算和1次逆運算得到W,再執行1次橢圓曲線上的加法運算得到智能車輛注冊狀態信息索引號S。然后執行1次橢圓曲線上的加法運算、1次倍點運算、1次雙線性對運算和1次普通哈希運算來驗證認證等式IndexIDV=e(δ,h1(S‖nonce‖QRSU)P+W)是否成立。再執行1次普通哈希運算完成會話密鑰K的交換。最后,執行1次消息認證碼運算完成智能車輛和RSU的雙向認證。因此RSU的認證計算開銷總共為2Mult+Inv+2Add+Pair+2hash+Mac。
從圖2可以看出,與文獻[23]中協議、APKI協議和EAAP協議相比,本文提出的基于智能車載網絡的匿名認證與密鑰交換協議在智能車輛和路邊基站單元方面都具有更低的計算開銷,因此本文設計協議在智能車載網絡環境具有明顯的計算性能優勢。

Figure 2 Comparison of computational costs圖2 計算開銷比較
本節對智能車輛和RSU進行雙向認證時產生的通信開銷進行分析與比較。首先統一循環群中的元素長度為1 024 bit,用|G|表示。將nonce和PID長度固定為32 bit,用符號ξ表示。統一Zq中的元素長度為160 bit,用|q|表示。將時間戳和假名過期時間都設置為32 bit,分別用|ts|和|ex|表示。
在基于智能車載網絡的匿名認證與密鑰交換協議中,通信開銷主要來自車輛發送認證請求信息給RSU,以便完成車輛和RSU的雙向認證。在匿名認證階段,車輛上傳單個認證請求信息Auth=(δ,nonce,W′,S′)到RSU的通信開銷為3|G|+ξ=3104 bit,如果n個車輛上傳n個認證請求消息,則通信開銷為3n|G|+nξ=3104nbit。
文獻[23]的協議中,在認證前車輛生成簽名σ=(C,L,K,T,R,f(PIDb,n)),其中,C為消息加密值,L為偽身份列表,K為基于隨機數生成的點,T為當前時間戳,R為基于偽身份生成對應循環群中的若干點。用偽身份列表以環信號方式構建簽名,會涉及較大的通信開銷,函數f(PIDb,n)長度用1 bit表示。因此,智能車輛通信開銷為2|G|+6|GT|+6|PID|+|ts|+|f(PID)|=8417 bit,n個車輛的通信開銷為8417nbit。
在APKI協議[24]中,智能車輛和RSU進行相互認證時,RSU和智能車輛都會發送認證信息給對方。智能車輛將接收RSU的廣播消息并驗證其合法性,RSU的通信開銷為3|q|+|ts|+|G|=1536 bit。智能車輛基于多方公鑰生成簽名并發送給RSU的開銷為4|G|+2|q|+|ts|=4448 bit,智能車輛進行一次認證總的通信開銷為5|G|+5|q|+2|ts|=5984 bit。RSU以廣播的形式與智能車輛進行驗證,因此n輛車的通信開銷為(4n+1)|G|+(2n+3)|q|+(n+1)|ts|=(4448n+1536) bit。在EAAP協議[25]中,TA充當了本文協議中RSU的角色,當智能車輛向TA認證時,智能車輛發送認證信息給TA的通信開銷為2|G|=2048 bit,如果有n輛車需要認證,則通信開銷將為2n|G|=2048nbit。
從圖3可以看出,本文提出的基于智能車載網絡的匿名認證與密鑰交換協議比文獻[23]中的協議和APKI協議的通信開銷低。雖然EAAP協議的通信開銷比本文協議的略低,但本文協議能夠有效實現雙向認證功能。由數據分析得知,在智能車輛數到達500時,文獻[23]中的協議和APKI協議的通信開銷約為本文協議的1.5倍以上,且隨著智能車載數量的增加,本文協議的通信開銷優勢將更為明顯。

Figure 3 Comparison of communication overhead圖3 通信開銷比較
本文提出了一個適用于智能車載網絡的匿名認證與密鑰交換協議,實現了智能車輛以完全匿名的方式與附近的RSU進行雙向認證以及會話密鑰的交換。安全性分析表明,本文協議可以有效確保身份的匿名性與可認證性,可實現可驗證的密鑰協商功能。性能比較與分析的結果表明,本文設計的協議具有輕量級的性能優勢,這對于移動智能車載通信場景的應用具有實際意義。