朱棟,殷新春,2*,寧建廷
(1.揚州大學(xué) 信息工程學(xué)院,江蘇 揚州 225127;2.揚州大學(xué) 廣陵學(xué)院,江蘇 揚州 225000;3.福建師范大學(xué) 計算機與網(wǎng)絡(luò)空間安全學(xué)院,福州 350117)
隨著汽車保有量的快速增長,交通運輸所面臨的壓力也日益增加。如何實現(xiàn)車、路、人的智能交互以提高通行效率,減少交通擁堵和事故已成為當下亟待解決的問題。車聯(lián)網(wǎng)(Internet of Vehicles,IoV)作為物聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)在交通領(lǐng)域的衍生,正是在這個背景下出現(xiàn)的。車聯(lián)網(wǎng)以車輛為主要載體可以實現(xiàn)多種方式的智能交互,包括車與車(Vehicle to Vehicle,V2V)、車與基礎(chǔ)設(shè)施(Vehicle to Infrastructure,V2I)和車與網(wǎng)絡(luò)(Vehicle to Network,V2N)。為了優(yōu)化交通網(wǎng)絡(luò)、保障駕駛安全,車輛通過專用短程通信(Dedicated Short Range Communication,DSRC)[1]或蜂窩車聯(lián)網(wǎng)(Cellular Vehicle to Everything,C-V2X)[2]技術(shù)周期性地向車載單元(On Board Unit,OBU)和路邊單元(Road Side Unit,RSU)廣播車輛的行駛狀態(tài)信息(速度、路況、位置及是否有突發(fā)事件)。
由于車輛與其他實體之間的通信都是在無線網(wǎng)絡(luò)環(huán)境下進行的,信息在傳輸過程中極易被監(jiān)聽、篡改或偽造[3-4],所以確保消息的完整性和認證性尤為重要。同時,若車輛的身份標識被截獲,車輛的隱私將難以保證,攻擊者可以利用監(jiān)聽到的行駛狀態(tài)信息定位車輛,從而威脅車主的個人安全。因此,需要采取技術(shù)手段保障通信安全和隱私。匿名接入認證[5]可以利用假名身份代替身份標識進行通信,即使攻擊者竊聽到某車輛的行駛狀態(tài)信息,也無法識別出車輛的身份標識,因此,可以保障車輛的身份隱私以及傳輸消息的完整性、認證性。然而匿名接入認證方案存在通信和存儲開銷大、隱私保護效果差的問題,如何在加強隱私保護的同時減少計算及通信開銷是值得研究的問題。
為解決車聯(lián)網(wǎng)的通信安全和隱私問題,文獻[6]中提出了一種基于身份的匿名批量認證方案,該方案利用防篡改設(shè)備(Tamper-Proof Device,TPD)存儲系統(tǒng)主密鑰,由于車輛每次與RSU 通信前可以生成一次動態(tài)的假名身份,因此攻擊者無法確定不同消息的發(fā)送者是否為同一車輛,從而降低車輛被追蹤的風險,該方案實現(xiàn)了強隱私保護;文獻[7]中提出了一種無雙線性配對運算的匿名認證方案,該方案的假名身份生成機制與文獻[6,8-9]類似,它們的安全性都基于TPD 不可入侵、不可篡改的假設(shè)。但是,文獻[10]中提出了差分功率分析的統(tǒng)計方法,如果攻擊者使用側(cè)信道攻擊就有可能獲取TPD 中存儲的系統(tǒng)主密鑰,因此文獻[6-9]中的方案面臨潛在的安全風險。
為了避免車輛依賴TPD 計算假名身份而帶來的密鑰泄露問題,許多學(xué)者采用可信中心生成假名身份的思路設(shè)計方案[11-16]。文獻[11]中提出了一種具有條件隱私保護的無證書聚合簽名方案,該方案被指出無法抵抗惡意但被動的密鑰生成中心(Key Generation Center,KGC)攻擊[12]。文獻[13]中提出了一種具有完全聚合功能的匿名認證方案,該方案采用預(yù)簽名的方式減少了實際簽名時所需的計算開銷;但該方案無法抵抗惡意的KGC 攻擊[14]。文獻[15]中提出了適用于車聯(lián)網(wǎng)的高效且安全的無證書聚合簽名方案,由于該方案未使用雙線性配對運算,所以相較于文獻[11-14]中的方案,其通信和計算開銷較??;但是,文獻[11-13,15]每次通信使用的假名身份是相同的,而靜態(tài)的假名身份會導(dǎo)致車輛被追蹤的風險增加,這使得方案的隱私保護能力較弱。為了加強隱私保護能力,文獻[14]中提出了一種改進的無證書聚合簽名方案,可信中心一次性為車輛生成一組假名身份,通過頻繁更換假名身份的方式避免了車輛被追蹤的問題,實現(xiàn)了強力的隱私保護。文獻[16]在提出了一種無雙線性配對運算的無證書聚合簽名方案,利用加載假名身份池的方式頻繁更換假名身份以實現(xiàn)強力的隱私保護,但是該方案無法抵抗惡意的KGC 攻擊[17]。文獻[18]中提出了一種適用于V2V 的無證書短簽名方案,與文獻[16]中的方案類似,該方案同樣通過加載TPD 中存儲的假名身份池使車輛每次都能使用不同的假名身份。文獻[14,16,18]中的方案存在著共同的問題,即假名身份的動態(tài)改變會導(dǎo)致對應(yīng)私鑰的頻繁更新;此外,接收和存儲多個假名身份和部分私鑰也會加重系統(tǒng)的通信開銷以及車輛的存儲開銷。
在文獻[19-21]所提的方案中,車輛向RSU 請求假名身份,從而避免可信中心為車輛生成大量的假名身份和部分私鑰;但是,若攻擊者沿途廣播RSU 的消息誘使車輛請求假名身份,車輛的行駛路線還是會被泄露,導(dǎo)致無法實現(xiàn)強力的隱私保護。如果車輛為逃避追蹤,向RSU 提供虛假的身份信息,RSU 將無法驗證[20-21]。此外,文獻[19]中的方案還存在過分依賴TPD 的問題[10]。文獻[22]中提出了一種適用于車聯(lián)網(wǎng)的無證書聚合簽名認證密鑰協(xié)商方案,該方案引入臨時身份實現(xiàn)了對車輛的強力隱私保護,車輛不再需要接收、存儲多個臨時身份及對應(yīng)的部分私鑰。在文獻[17]中,車輛利用時間函數(shù)和可信中心發(fā)送的隨機因子生成假名身份,在避免多余的通信開銷的同時,還實現(xiàn)了不可鏈接性,但是該方案無法抵抗簽名偽造攻擊[23]??偟膩碚f,文獻[17-21]中的方案還需要進一步的完善。
為了解決上述問題并避免公鑰信息成為攻擊者的追蹤誘因,本文提出了一種適用于車聯(lián)網(wǎng)的無證書聚合簽名方案,該方案既可以實現(xiàn)強隱私保護又能緩解私鑰頻繁更新帶來的通信和存儲開銷高的問題。
1)橢圓曲線離散對數(shù)(Elliptic Curve Discrete Logarithm,ECDL)問題。取階為大素數(shù)q的加法群G,P為群G的一個生成元。已知P,aP∈G,ECDL 問題的目標是計算a∈。
2)計算性Diffie-Hellman(Computational Diffie-Hellman,CDH)問題。取階為大素數(shù)q的加法群G,P為群G的一個生成元。已知aP,bP∈G,對于任意未知的a,b∈,CDH 問題的目標是計算abP∈G。
車聯(lián)網(wǎng)系統(tǒng)模型主要包括4 個參與者:可信中心(Trusted Authority,TA)、KGC、RSU 和車輛。車聯(lián)網(wǎng)系統(tǒng)模型的通信分為上、下兩層,TA、KGC 和RSU 之間的通信處于上層,車輛和車輛、車輛和RSU 的通信處于下層,上層通信通過安全的有線網(wǎng)絡(luò)實現(xiàn),下層通信通過安全系數(shù)較低的無線網(wǎng)絡(luò)實現(xiàn)。
1)TA:通常為交通管理部門,主要負責車輛和RSU 的注冊,并且在必要時刻,TA 可以根據(jù)車輛的偽身份恢復(fù)出其真實身份。
2)KGC:是半可信的第三方機構(gòu),主要負責生成系統(tǒng)參數(shù),并為車輛生成部分私鑰。
3)車輛:能夠與RSU 及其他車輛進行通信,進而獲得相應(yīng)的交通信息。同時,車輛可以生成假名身份、公鑰和消息的簽名。
4)RSU:指安裝在道路兩側(cè)的基礎(chǔ)設(shè)施。RSU 通過無線通信向監(jiān)管范圍內(nèi)的車輛廣播自己的身份和公鑰,驗證車輛發(fā)送的消息簽名。然后,它會將有效的消息動態(tài)聚合并轉(zhuǎn)發(fā)給TA。最后,RSU 將從TA 處接收的信息以廣播的形式傳遞給周圍的車輛。若RSU 周邊出現(xiàn)事故,RSU 有權(quán)向TA 舉報并協(xié)助TA 追蹤車輛。
1)認證性和完整性:消息接收者要確認接收的消息來自注冊過的車輛,即消息來源是可靠的,且消息在傳輸過程中未被篡改。
2)匿名性:除TA外,其他實體無法通過車輛的假名身份識別出車輛的真實身份。
3)可追蹤性:若RSU 的監(jiān)管范圍內(nèi)發(fā)生惡意事件,如車輛提供虛假交通信息,RSU 將協(xié)助TA 追蹤惡意車輛的真實身份。
4)強隱私保護:在保證車輛匿名性的同時,保證攻擊者無法根據(jù)假名身份信息得知車輛的行駛軌跡。
本文方案由9 個多項式時間算法構(gòu)成,具體的算法描述如下:
1)系統(tǒng)初始化算法:該算法由KGC 和TA 執(zhí)行。輸入安全參數(shù)λ,輸出系統(tǒng)主密鑰α∈、TA 的私鑰β∈,系統(tǒng)公共參數(shù)params。KGC 秘密保存α并公開params,TA秘密保存β。
2)路邊單元注冊算法:該算法由RSUj和TA 執(zhí)行。輸入RSUj身份的Pj∈{0,1}l,輸出RSUj的公鑰Yj、私鑰yj。RSUj將(Pj,Yj)發(fā)送給TA,審核通過后,TA 公布合法的RSU 的信息
3)車輛注冊算法:該算法由車輛Vi和TA 執(zhí)行。輸入params、當前時間戳TOiT和車輛Vi的真實身份RIDi∈{0,1}l,輸出對稱密鑰KOiT、車輛Vi的偽身份Qi和Xi。車輛Vi利用KOiT加密Qi為eOiT,并通過周邊的RSUj將(eOiT,Xi,TOiT)發(fā)送給TA。然后,TA 解密eOiT為Qi,驗證Qi的有效性,若有效,則設(shè)置Qi的有效期為Tendi,將(Qi,Xi,Tendi)發(fā)送給KGC。
4)提取部分私鑰算法:該算法由KGC 執(zhí)行。輸入params、α、Qi、Xi和Tendi,輸出車輛Vi的部分私鑰的轉(zhuǎn)換值ki和Ri。KGC 通過RSUj將(ki,Ri,Tendi)發(fā)送給車輛Vi。車輛Vi根據(jù)ki計算出部分私鑰di,驗證di是否有效。
5)假名身份生成算法:該算法由車輛Vi執(zhí)行。輸入params、Qi、車輛Vi的當前時間戳Ti、RSUj的身份Pj和公鑰Yj,輸出車輛Vi的假名身份IDi,公鑰PKi=(X'i,R'i)。
6)簽名算法:該算法由車輛Vi執(zhí)行。輸入params、Qi、IDi、Tendi、xi、di和消息mi||ti,輸出簽名σi。車輛Vi將請求消息Req=(m‖iti,σi,IDi,PKi,Tendi)發(fā)送給周邊的RSUj。
7)單個簽名驗證算法:該算法由RSUj執(zhí)行。輸入params、mi‖ti、σi、IDi、PKi和Tendi,RSUj驗證σi是否有效,若簽名有效,輸出VALID;否則,輸出INVALID。
8)聚合簽名算法:該算法由RSUj執(zhí)行。輸入(m‖iti,σi,IDi,PKi,Tendi)i∈[1,2,…,k](k≤n),輸出聚合簽名σagg和(Qi,Xi,Ri)i∈[1,2,…,k],RSUj將{(m‖iti,σi,IDi,PKi,Tendi)i∈[1,2,…,k],σagg}通過安全信道發(fā)送給TA。
9)聚合簽名驗證算法:該算法由TA 執(zhí)行。輸入{(m‖iti,σi,IDi,PKi,Tendi)i∈[1,2,…,k],σagg},TA 驗證聚合簽名σagg是否有效,若簽名有效,輸出VALID;否則,輸出INVALID。
本章對文獻[15]方案進行了介紹,此外,還對文獻[14-15,18]方案進行了安全性分析。
1)系統(tǒng)初始化算法:輸入安全參數(shù)λ,TA 和KGC 選取兩個大素數(shù)p和q,選取P作為群G的生成元。KGC 隨機選取s∈作為系統(tǒng)主密鑰并計算系統(tǒng)公鑰Ppub=sP。TA 隨機選取b∈并計算公鑰Tpub=bP。KGC 和TA 選取3 個安 全的哈希函數(shù):H1,H2,H3:{0,1}*→,公開系統(tǒng)參數(shù)params=(P,p,q,G,H1,H2,H3,Ppub,Tpub)。系統(tǒng)內(nèi)的車輛Vi向TA 發(fā)送真實身份RIDi進行注冊,然后獲取系統(tǒng)參數(shù)params并將其存儲在OBU 內(nèi)。RSU 也在該階段注冊并獲取系統(tǒng)參數(shù)params。
2)假名身份生成算法:車輛Vi隨機選取ti∈,計算PIDi,1=tiP,Ki=tiTpub⊕RIDi,將(PIDi,1,Ki)發(fā)送給TA。TA收到車輛Vi發(fā)送的(PIDi,1,Ki)后,計算RIDi=Ki⊕bPIDi,1,檢驗RIDi是否已注冊,若未注冊,TA 拒絕執(zhí)行;否則,TA 為假名身份設(shè)置有效期ΔTi,計算PIDi,2=RIDi⊕H1(bPIDi,‖1ΔTi)并向KGC 發(fā)送假名身份PIDi=(PIDi,1,PIDi,2,ΔTi)。
3)提取部分私鑰算法:KGC 隨機選取ri∈Z*q,計算Ri=riP,h1i=H1(PIDi‖Ri‖Ppub) 和車輛Vi的部分私鑰pski=(ri+sh1i) modq。然后,KGC 通過安全通道將(Ri,pski,PIDi)發(fā)送給車輛Vi。車輛Vi驗證等式pskiP=Ri+h1iPpub是否成立:若成立,則將(Ri,pski,PIDi)存儲在OBU 內(nèi);否則,拒絕并重新申請部分私鑰。
4)設(shè)置秘密值算法:車輛Vi隨機選取xi∈作為秘密值并計算Xi=xiP。
5)密鑰生成算法:車輛Vi計算h2i=H2(PIDi‖Xi),部分公鑰Qi=Ri+h2iXi,設(shè)置公鑰PKi=(Qi,Ri),私鑰SKi=(pski,xi)。
6)簽名算法:車輛Vi獲取當前時間戳Ti并隨機選取ui∈,計算Ui=uiP,h2i=H2(PIDi‖Xi),h3i=H3(PID‖im‖iPK‖iU‖iTi),Si=[ui+h3i(pski+h2ixi)]modq,設(shè)置簽名σi=(Ui,Si)。然后,車輛Vi向周邊的RSU 發(fā)送請求消息(PIDi,PKi,mi,Ti,σi)。
7)驗證算法:接收到來自車輛Vi的請求消息(PIDi,PKi,mi,Ti,σi)后,RSU 首先檢查假名身份的有效期ΔTi和簽名的時間戳Ti是否有效:若無效,則不接收該消息;否則,計算h1i=H1(PID‖iR‖iPpub),h3i=H3(PID‖im‖iPK‖iU‖iTi)。驗證等式SiP=Ui+h3i(Qi+h1iPpub)是否成立:若成立,則接收該消息;否則,拒絕該消息。
惡意車輛偽造攻擊的步驟如下:
1)惡意車輛在無線通道中截獲車輛Vi發(fā)送的請求消息(PIDi,PKi,mi,Ti,σi),其中σi=(Ui,Si);
3)惡意車輛選取一個消息m*≠mi,選取和新的時間戳,計算,
RSU 首先檢查假名身份PIDi的有效期ΔTi和簽名的時間戳T'i是否有效:若無效,則不接收該消息簽名;否則,計算驗證等式是否成立:若成立,則接收該消息;否則,拒絕接收該消息。
正確性偽造簽名的正確性證明如下:
1)安全性方面。在2.2 節(jié)中,文獻[15]方案不能抵抗惡意車輛的攻擊,即攻擊者可以通過替換公鑰的方法偽造簽名[24]。惡意車輛擁有替換車輛公鑰的能力,通過選取新的公鑰替換舊的公鑰PKi,線性消除部分私鑰對應(yīng)的系統(tǒng)公鑰hiPpub,由于Ppub=sP,消除驗證等式的hiPpub就代表消除了主密鑰s的影響,攻擊者無需解決ECDL 問題即可偽造一個有效的簽名。
惡意的KGC 不可以使用類似替換公鑰的方式偽造簽名,但是它可以知道主密鑰s以及車輛的部分私鑰(部分私鑰由KGC 計算)。在文獻[18]方案的簽名階段,車輛Vi隨機選取ai∈,計算Ai=aiPpub,δi=H2(m‖iAID‖ipk‖iA‖iPpub),ηi=δi(ai+ui+λi) modq。車輛Vi設(shè)置Θi=(ηi,Ai)為消息mi上的簽名,其中Ppub=βP是系統(tǒng)公鑰,AIDi是車輛Vi的假名身份,pki=Xi+Yi是車輛Vi的公鑰(Xi=uiPpub,Yi=λiPpub),而ui、λi分別是車輛Vi的秘密值、部分私鑰。然后,任何RSU 都可以通過驗證等式ηiPpub=δi(Ai+pki)判斷簽名的有效性。
2)隱私保護方面。在文獻[14]方案中,車輛向TA 請求一組假名身份前,車輛需向TA 傳輸m個PIDi,1,TA 完成假名身份生成算法后,向KGC 傳輸m個假名身份PSUIDi={PSUIDi,j=(PSUIDi,1,j,PSUIDi,2,j,TPi,j)}j∈[1,2,…,m],然后,KGC生成m個對應(yīng)的部分私鑰并將它們傳輸給車輛??梢钥闯?,假名身份的動態(tài)改變完全基于部分私鑰的頻繁更新,每次車輛發(fā)送消息時,將從一組假名身份中選取一個假名身份及對應(yīng)的部分私鑰用于生成簽名,使用完便將其刪除。通過這種方式無疑可以避免因靜態(tài)假名身份帶來的軌跡泄露問題,但也加重了系統(tǒng)的通信開銷以及車輛的存儲代價,所以不宜用于資源受限的車聯(lián)網(wǎng)環(huán)境。
在文獻[15]方案中,PIDi是TA 一次生成的。因此,當車輛在不同的地點、不同的時間段向RSU 發(fā)送請求消息(PIDi,PKi,mi,Ti,σi)時,所用的PIDi是不變的。攻擊者可以識別出源自同一車輛的不同消息,從而獲取該車輛的行駛路線,據(jù)此分析,攻擊者可以得出車主的駕駛習(xí)慣,車主的隱私和安全會遭受到威脅。同時,若公鑰PKi是靜態(tài)的,這也將會成為攻擊者探視車輛隱私的重要線索。由文獻[14-15]方案可以看出,強隱私保護和低系統(tǒng)開銷是一對矛盾,很難同時實現(xiàn)。
為了抵抗公鑰替換攻擊和惡意KGC 的攻擊,保護車輛隱私并維持較低的系統(tǒng)開銷,本文提出了一種適用于車聯(lián)網(wǎng)的具有強隱私保護的無證書聚合簽名方案。本文方案的部分符號說明如表1 所示。
表1 本文方案的部分符號Tab.1 Some symbols used in the proposed scheme
1)系統(tǒng)初始化算法:該算法由KGC 和TA 執(zhí)行。輸入安全參數(shù)λ,KGC 和TA 運行該算法生成兩個大素數(shù)p和q,生成階為q的加法循環(huán)群G,選取P為群G的生成元。然后,KGC隨機選取α∈為系統(tǒng)主密鑰,計算系統(tǒng)公鑰Ppub=αP。TA 隨機選取β∈并計算其公鑰Tpub=βP。KGC 選取5 個安全的哈希函數(shù):H:G×{0,1}*→{0,1}l,H0:G→,H1:{0,1}l×G×G×{0,1}*×G→,H2:{0,1}l×G×G×G×{0,1}*×{0,1}*→,H':G×{0,1}*×{0,1}l→{0,1}l,選取對稱加解密算法:Ek,DECk。最后,KGC 公開系統(tǒng)參數(shù)params=(q,G,P,Ppub,Tpub,Ek,DECk,H,H0,H1,H2,H')。系 統(tǒng)內(nèi)的車輛Vi(i∈[1,2,…,n]) 向 TA 發(fā)送真實身份RIDi∈{0,1}l進行登記,然后獲取系統(tǒng)參數(shù)params并將其存儲在車輛Vi的設(shè)備內(nèi)。
2)路邊單元注冊算法:該算法由RSUj和TA 執(zhí)行。RSUj隨機選取yj∈為私鑰,計算公鑰Yj=yjP,然后RSUj將身份Pj∈{0,1}l和公鑰Yj通過安全通道發(fā)送給TA。TA 審核RSUj的身份信息,確認后公布合法RSU 的信息(Pj,Yj)j∈[1,2,…,m]。
3)車輛注冊算法:該算法由車輛Vi和TA 執(zhí)行。車輛Vi隨機選取秘密值xi∈,計算Xi=xiP,偽身份Qi=RIDi⊕H(xiTpu‖bTOiT),對稱密鑰kOiT=H(xiTpu‖bTOiT)(TOiT是當前設(shè)備的時間戳),車輛Vi利用kOiT對Qi加密:eOiT=然后,車輛Vi通過周邊的RSUj將(eOiT,Xi,TOiT)發(fā)送給TA。TA 接收到車輛Vi發(fā)送的(eOiT,Xi,TOiT)后,首先驗證TOiT的有效性:若無效,則拒絕接收;否則,TA 計算kTOi=H(βX‖iTOiT)。然后,TA 利用kTOi解密:Qi=(eOiT),計算RIDi=Qi⊕H(βX‖iTOiT),檢驗記錄是否存在RIDi的信息:若不存在,TA 終止執(zhí)行該算法;否則,TA 保存(RIDi,Qi)并將(Qi,Tendi,Xi)通過安全通道發(fā)送給KGC(Tendi是偽身份的有效期,當Tendi到期后,車輛Vi需要再次申請偽身份的授權(quán))。
4)提取部分私鑰算法:該算法由KGC 執(zhí)行。接收到TA發(fā)送的(Qi,Tendi,Xi)后,KGC 隨機選取ri∈,計算Ri=riP,h1i=H1(Qi‖Ri‖Ppub‖Tendi‖Xi),部分私鑰的轉(zhuǎn)換值ki=ri+αh1i-H0(αXi) modq。然后,KGC 通過RSUj將(ki,Ri,Tendi)發(fā)送給車輛Vi。車輛Vi接收到(ki,Ri,Tendi)后,計算部分私鑰di=ki+H0(xiPpub) modq,h1i=H1(Qi‖Ri‖Ppub‖Tendi‖Xi),驗證等式diP=Ri+h1iPpub是否成立:若成立,則接收;否則,重新注冊并申請部分私鑰。
5)假名身份生成算法:該算法由車輛Vi執(zhí)行。假設(shè)車輛Vi每當駛?cè)肽砇SU 的范圍內(nèi)都會執(zhí)行該算法。當車輛Vi駛?cè)隦SUj的區(qū)域內(nèi)會接收到RSUj廣播的身份和公鑰信息,若車輛Vi根據(jù)TA 公布的合法RSU 信息,檢查出RSUj的身份與公鑰信息不匹配,則不執(zhí)行該算法;否則,車輛Vi獲取當前的時間戳Ti,選取zi∈,計算Zi=ziP,F(xiàn)i=ziYj,=Fi+Xi,=Fi+Ri,設(shè)置公鑰PKi=計算IDi1=Qi⊕H'(F‖iT‖iPj),令I(lǐng)Di2=Zi,設(shè)置車輛Vi的假名身份IDi=(IDi1,IDi2,Ti)。
6)簽名算法:該算法由車輛Vi執(zhí)行。車輛Vi隨機選取ui∈,計算Ui=uiP,選取當前時間戳ti和待提交的消息mi,計算h2i=H2(Qi‖Xi‖Ri‖Ui‖mi‖ti),vi=ui+h2i(di+xi) modq,設(shè)置簽名σi=(Ui,vi)。車輛Vi將請求消息Req=(σi,PKi,Tendi,m‖iti,IDi)發(fā)送給周邊的RSUj。
7)單個簽名驗證算法:該算法由RSUj執(zhí)行。接收到車輛Vi發(fā)送的請求消息后,RSUj檢查Tendi、Ti和ti是否有效:若無效,則拒絕接收;否則,RSUj計算Fi=IDi2yj,Qi=IDi1⊕H'(Fi‖Ti‖Pj),Xi=-Fi,Ri=-Fi,h1i=H1(Q‖iR‖iPpu‖bTend‖iXi),h2i=H2(Q‖iX‖iR‖iU‖im‖iti),驗證等式viP=Ui+h2i(Ri+h1iPpub+Xi)是否成立:若成立,則輸出VALID;否則,輸出INVALID。
本文方案的正確性證明如下:
聚合簽名驗證算法的正確性證明如下:
根據(jù)文獻[25]中的安全模型,無證書公鑰密碼體系內(nèi)有兩類具備不同能力的攻擊者AΙ和AΙΙ。AΙ模擬一個惡意的車輛,而AΙΙ模擬一個惡意但被動的KGC。
1)攻擊者AΙ:由AΙ發(fā)動的攻擊又可稱為類型I(Type I)攻擊,這類攻擊者無法獲取系統(tǒng)主密鑰及車輛的部分私鑰,但可以通過重新選取秘密值的方式替換合法車輛的公鑰。
2)攻擊者AΙΙ:由AΙΙ發(fā)動的攻擊又可稱為類型II(Type II)攻擊,這類攻擊者擁有系統(tǒng)主密鑰,可獲取合法車輛的部分私鑰,但不能替換合法車輛的公鑰。
定理1在隨機預(yù)言模型中,若存在一個惡意的車輛AΙ能在概率多項式時間內(nèi)以ε的優(yōu)勢成功偽造一個簽名,那么存在一個挑戰(zhàn)者CΙ能夠在概率多項式時間內(nèi)以ε1的優(yōu)勢解決ECDL 問題。
其中:ε1≥(qppk+qsig+k)e,qppk表示部分私鑰詢問次數(shù),qsig表示部分簽名詢問次數(shù),k表示構(gòu)成聚合簽名的簽名者的數(shù)量,e 表示 自然對數(shù)的底數(shù),ε表示AΙ能成功偽造一個簽名的優(yōu)勢。
證明 假設(shè)CΙ是一個ECDL 問題的解決者,AΙ通過與CΙ交互,從而在多個消息上偽造有效的聚合簽名,CΙ調(diào)用AΙ作為子程序求解ECDL 問題。ECDL 問題的輸入為(P,Q=αP),其中α∈,P,Q∈G,CΙ的目標是通過與AΙ交互計算出α。
CΙ維護列表L1、L2、Lppk、Luser分別用于跟蹤AΙ對預(yù)言機H1、H2的哈希詢問、部分私鑰詢問以及創(chuàng)建用戶詢問。初始化時各列表均為空,AΙ和CΙ之間的交互如下:
1)初始化階段:CΙ運行系統(tǒng)初始化算法,將系統(tǒng)參數(shù)params=(q,G,P,Ppub,Tpub,Ek,DECk,H1,H2) 發(fā)送給AΙ。然后,AΙ挑選車輛作目標用戶。2)詢問階段:AΙ適應(yīng)性地向CΙ提交最多多項式有界次的詢問。
①H1詢問:當CΙ收到AΙ的H1(Qi‖Ri‖Ppub‖Tendi‖Xi) 詢問時,若列表L1中包含(Qi,Ri,Ppub,Tendi,Xi,h1i),則CΙ返回h1i給AΙ;否則,CΙ隨機選取h1i∈,將(Qi,Ri,Ppub,Tendi,Xi,h1i)加入列表L1并返回h1i給AΙ。
②H2詢問:當CΙ收到AΙ的H2(Qi‖Xi‖Ri‖Ui‖mi‖ti) 詢問時,若列表L2中包含(Qi,Xi,Ri,Uimi,ti,h2i),則CΙ返回h2i給AΙ;否則,CΙ隨機選取h2i∈,將(Qi,Xi,Ri,Ui,mi,ti,h2i)加入列表L2并返回h2i給AΙ。
③部分私鑰詢問:當CΙ收到AΙ的部分私鑰詢問時,若列表Lppk中包含(IDi,di,Ri),則CΙ返回(di,Ri)給AΙ。否則,CΙ執(zhí)行以下操作:若IDi=,CΙ終止操作;若IDi≠,CΙ隨機選取ai,h1i∈,令di=ai,H1(Qi‖Ri‖Ppub‖Tendi‖Xi=h1i),計算Ri=diP-h1iPpub,將(Qi,Ri,Ppub,Tendi,Xi,h1i)、(IDi,di,Ri)分別加入列表L1、Lppk,返回(di,Ri)給AΙ。
通過解3k+1 個線性無關(guān)方程,CΙ會計算出α作為ECDL 問題的有效解,從而解決ECDL 問題。
CΙ能夠在概率多項式時間內(nèi)以ε1的優(yōu)勢解決ECDL 問題需要滿足下列3 個條件:
條件1(E1)AΙ提交部分私鑰和簽名詢問而不被終止。
條件2(E2)AΙ能夠成功偽造一個簽名。
條件3(E3)AΙ能夠成功偽造一個簽名且CΙ不會終止游戲。
CΙ在概率多項式時間內(nèi)解決ECDL 問題的優(yōu)勢為:
定理2在隨機預(yù)言模型中,若存在一個類型II 攻擊者AΙΙ能在概率多項式時間內(nèi)以ε的優(yōu)勢成功偽造一個簽名,那么存在一個挑戰(zhàn)者CΙΙ能夠在概率多項式時間內(nèi)以ε2的優(yōu)勢解決ECDL 問題。
其中,ε2≥ε/(qsv+qsig+k)e,qsv表示秘密值詢問次數(shù),k表示構(gòu)成聚合簽名的簽名者的數(shù)量,e 表示自然對數(shù)的底數(shù),ε表示AΙΙ能成功偽造一個簽名的優(yōu)勢。
證明 假設(shè)CΙΙ是一個ECDL 問題的解決者,AΙΙ通過與CΙΙ交互,從而對消息偽造有效的聚合簽名,CΙΙ調(diào)用AΙΙ作為子程序求解ECDL 問題。ECDL 問題的輸入為(P,Q=xP),其中x∈,P,Q∈G,CΙΙ的目標是通過與AΙΙ交互計算出x。
CΙΙ維護列表L1、L2、Luser分別用于跟蹤AΙΙ對預(yù)言機H1,H2的哈希詢問以及創(chuàng)建用戶詢問。初始化時各列表均為空,AΙΙ和CΙΙ之間的交互如下:
1)初始化階段:CΙΙ運行系統(tǒng)初始化算法,將系統(tǒng)參數(shù)params=(q,G,P,Ppub,Tpub,Ek,DECk,H1,H2)和主密鑰α發(fā)送給AΙΙ。然后,AΙΙ挑選車輛作目標用戶。2)詢問階段:AΙΙ適應(yīng)性地向CΙΙ提交最多多項式有界次的詢問。
①H1詢問:當CΙΙ收到AΙΙ的H1(Qi‖Ri‖Ppub‖Tendi‖Xi) 詢問時,若列表L1中包含(Qi,Ri,Ppub,Tendi,Xi,h1i),則CΙΙ返回h1i給AΙΙ;否則,CΙΙ隨機選取h1i∈,將(Qi,Ri,Ppub,Tendi,Xi,h1i)加入列表L1并返回h1i給AΙΙ。
②H2詢問:當CΙΙ收到AΙΙ的H2(Qi‖Xi‖Ri‖Ui‖mi‖ti) 詢問時,若列表L2中包含(Qi,Xi,Ri,Ui,mi,ti,h2i),則CΙΙ返回h2i給AΙΙ;否則,CΙΙ隨機選取h2i∈,將(Qi,Xi,Ri,Ui,mi,ti,h2i)加入列表L2并返回h2i給AΙΙ。
③創(chuàng)建用戶詢問:當CΙΙ收到AΙΙ的創(chuàng)建用戶詢問時,若列表Luser中包含(IDi,Xi,Ri,di,xi),則CΙΙ返回(Xi,Ri)給AΙΙ。否則,CΙΙ執(zhí)行以下操作:若IDi=,CΙΙ隨機選取bi,h1i∈,令H1(Qi‖Ri‖Ppub‖Tendi‖Xi)=h1i,計算Ri=biP,Xi=Q=xP,di=bi+αh1imodq,將(Qi,Ri,Ppub,Tendi,Xi,h1i)、(IDi,Xi,Ri,di,⊥)分別加入列表L1、Luser,返回(Xi,Ri)給AΙΙ;若IDi≠,CΙΙ隨機選取ri,h1i,xi∈,令H1(Q‖iR‖iPpu‖bTend‖iXi)=h1i,計算Xi=xiP,Ri=riP,將(Qi,Ri,Ppub,Tendi,Xi,h1i)、(IDi,Xi,Ri,di,xi)分別加入列表L1、Luser,返回(Xi,Ri)給AΙΙ。
④秘密值詢問:當CΙΙ收到AΙΙ的秘密值詢問時,CΙΙ執(zhí)行以下操作:若IDi=,CΙΙ終止操作;若IDi≠,CΙΙ從列表Luser中獲取(IDi,Xi,Ri,di,xi)并返回xi給AΙΙ,如果列表Luser中不包含(IDi,Xi,Ri,di,xi),CΙΙ先提交關(guān)于IDi的創(chuàng)建用戶詢問并將(xi,Xi)加入列表Luser,最后,CΙΙ返回xi給AΙΙ。
通過解k+1 個線性無關(guān)方程,CΙΙ會計算出x作為ECDL問題的有效解,從而解決ECDL 問題。
CΙΙ能夠在概率多項式時間內(nèi)以ε2的優(yōu)勢解決ECDL 問題需要滿足下列3 個條件:
條件4(E4)AΙΙ提交秘密值詢問和簽名詢問而不被終止。
條件5(E5)AΙΙ能夠成功偽造一個簽名。
條件6(E6)AΙΙ能夠成功偽造一個簽名且CΙΙ不會終止游戲。
CΙΙ在概率多項式時間內(nèi)解決ECDL 問題的優(yōu)勢為:
在詢問階段,若IDi=,CΙΙ會終止操作。假 設(shè)Pr [IDi=]=δ,則CΙΙ不終止操作的概率為(1 -δ),從而CΙΙ提交qsv、qsig次秘密值、簽名詢問而不被終止的概率為(1 -,即Pr [E4]≥。AΙΙ能夠成功偽造一個簽名的優(yōu)勢為ε,所以Pr [E5|E4]≥ε。在E4和E5都滿足的情況下,當IDi=(i=1),IDi≠(i∈[2,3,…,k])時,CΙΙ不終止操作,則Pr [E6|E4∧E5]=δ(1 -δ)k-1。因此得到:
4.3.1 認證性和完整性
這兩種性質(zhì)可從定理1 和定理2 的不可偽造性證明中得到。在本文方案中,無論類型I、類型II 攻擊者都無法通過偽造簽名的方式通過驗證,只有已注冊車輛發(fā)送的簽名能夠得到有效驗證,而消息被篡改,導(dǎo)致簽名的變化,簽名將無法被驗證為有效。所以,本文方案滿足這兩種性質(zhì)。
4.3.2 匿名性
在本文方案中,車輛的真實身份被完全隱藏,除了TA 和車輛,其他實體或攻擊者都無法還原出車輛的真實身份。車輛的匿名性以如下方式實現(xiàn):偽身份Qi=RIDi⊕H(xiTpu‖bTOiT),假名身份IDi1=Qi⊕H'(F‖iT‖iPj),其中Fi=ziYj=yjZi=ziyjP,而zi、yj分別為車輛、RSU 的私有值?;贑DH 問題,除車輛以及與之通信的RSU外,其他實體無法計算出ziyjP。若攻擊者采用入侵RSU 的方式獲取yj,它也無法計算出xiTpub,從而不能根據(jù)偽身份Qi還原出真實身份RIDi。因此,本文方案實現(xiàn)了匿名通信。
4.3.3 可追蹤性
出于隱私保護的考慮,需要保證車輛的匿名性;但是,在某些情況下(例如:交通事故、肇事逃逸),TA 應(yīng)擁有追查車輛身份的能力。車輛的可追蹤性以如下方式實現(xiàn):事故周邊的RSU 可在第一時間內(nèi)獲知目標車輛的假名身份IDi=(IDi1,IDi2,Ti),然后 RSU 根據(jù)私鑰yj,計算Qi=IDi1⊕H'(yjIDi‖2T‖iPj)并將偽身份Qi提交給TA。最終,TA查找Qi對應(yīng)的RIDi還原出肇事車輛的真實身份。
4.3.4 強隱私保護
車輛每當駛?cè)隦SU 的監(jiān)管范圍內(nèi)都會重新選取秘密值zi∈,計算Fi=ziYj,利用其作為輸入?yún)?shù)更新假名身份IDi1=Qi⊕H'(yjIDi2‖Ti‖Pj) 和公鑰PKi=(Xi,Ri)(=Xi+Fi,=Ri+Fi)。因此,車輛的假名身份和公鑰信息可以隨著RSU 劃分區(qū)域的不同而動態(tài)改變,基于CDH 問題,任何實體都無法根據(jù)假名身份或公鑰信息實現(xiàn)跨區(qū)域追蹤。若在一段區(qū)域內(nèi)發(fā)送多個消息,車輛可以不改變其假名身份和公鑰信息,待進入下一RSU 所處區(qū)域內(nèi)再更新其假名身份和公鑰信息,這樣既可以保證攻擊者無法獲取車輛的行駛軌跡,同時也可以減少不必要的系統(tǒng)開銷。
本章將從計算開銷、通信開銷和安全性3 個方面進行性能分析。在計算開銷方面,本文采用文獻[7]的實驗結(jié)果,各種密碼學(xué)運算的運行時間[7]如表2 所示。在通信開銷方面,各個參數(shù)及其長度規(guī)格參考文獻[15]中的數(shù)據(jù),對比了Bilinear Pairing 和橢圓曲線密碼學(xué)(Elliptic Curve Cryptography,ECC),具體如表3 所示,另外規(guī)定時間戳長度為32 bit,用符號|T|表示。
表2 運算操作的時間Tab.2 Operation time
表3 Bilinear Pairing和ECC中參數(shù)的長度Tab.3 Length of parameters in Bilinear Pairing and ECC
在計算開銷方面,本文主要統(tǒng)計簽名算法、驗證算法和聚合驗證算法的計算開銷。由于文獻[13-14]中的方案需要執(zhí)行復(fù)雜的雙線性對和映射到點運算,而文獻[19]中的方案需要執(zhí)行較多的乘法運算,所以這些方案的總計算開銷(簽名+驗證)較大。如表4 所示,相較于文獻[13-14,19]中的方案,本文方案的總計算開銷分別減少了91.3%、93.8%和28.4%。同時本文方案采用聚合簽名技術(shù)進行認證,如圖1所示,當需要驗證的請求消息數(shù)量較大時,相較于文獻[13-14,19]中的方案,本文方案的計算性能提升明顯。雖然文獻[15-16,18]中所提方案的總計算開銷較本文方案稍低,但在聚合驗證算法方面,本文方案的計算開銷與文獻[15]基本持平。此外,盡管文獻[16,18]的聚合驗證算法開銷比本文方案稍低,但這些方案無法抵抗惡意KGC 的攻擊,難以保證車聯(lián)網(wǎng)對通信安全的基本要求??傮w而言,本文方案的計算開銷具有一定的優(yōu)勢。
表4 不同方案的計算開銷對比Tab.4 Comparison of computational cost for different schemes
在通信開銷方面,本文主要衡量簽名傳輸所需元素的長度,包括假名身份、公鑰、簽名和時間戳。由于文獻[18-19]采用批處理而非聚合技術(shù),所以不統(tǒng)計其聚合簽名長度和傳輸聚合簽名的通信開銷。以文獻[15]方案和本文方案為例,在文獻 [15] 中,Req=(PIDi,PKi,σi,Ti),PIDi=(PIDi,1,PIDi,2,ΔTi),公鑰PKi=(Qi,Ri),簽名σi=(Ui,Si),PIDi,1,PKi,Ui∈G,PIDi,2∈{0,1}l,Si∈,Ti和ΔTi的長度為|T|,傳輸單個簽名通信開銷為4 |G|++2 |T|=1 504 bit,Reqagg=(PIDi,PKi,Ti,σagg)i∈[1,2,…,k],其中聚合簽名σagg=(U1,U2,,…,Uk,S),傳輸聚合簽名 的通信開銷為=134 560 bit(k取100)。在 本文方案中,Req=(IDi,PKi,σi,Tendi,ti),假名身份IDi=(IDi1,IDi2,Ti),公鑰PKi=簽名σi=(Ui,vi),其中IDi2,PKi,Ui∈G,IDi1∈{0,1}l,vi∈,Tendi,ti和Ti的長度為|T|,傳輸單個簽名通信開銷為 4 |G|+|+3 |T|=1 536 bit,Reqagg=(Qi,Xi,Ri,Tendi,Ti,ti,σagg)i∈[1,2,…,k],其中σagg=(U1,U2,,…,Uk,v),傳輸聚合簽名 的通信開銷為3k|G|++3k|T|=105 760 bit。
通信開銷如表5 所示,其中符號“—”表示未涉及該要求。結(jié)合表3 和表5,相較于文獻[13-14,19]中的方案,本文方案的簽名長度分別減小了76.6%、76.6%和50.0%。相較于文獻[15-16,18]中的方案,本文方案在傳輸單個簽名時耗費的通信開銷稍大,但本文方案在RSU 轉(zhuǎn)發(fā)聚合簽名時,只需要傳輸偽身份Qi,無需傳輸假名身份IDi,減少了k個群元素的傳輸。如圖2 所示,相較于文獻[13-16],在傳輸聚合簽名時,本文方案需要耗費的通信開銷較小。另外,在文獻[14,16,18]的方案中,可信中心需要一次性為車輛生成多個假名身份和部分私鑰,無可避免地會導(dǎo)致系統(tǒng)的通信開銷增大??傮w而言,本文方案的通信開銷具有一定的優(yōu)勢。
表5 不同方案的通信開銷對比Tab.5 Comparison of communication overhead for different schemes
在安全性方面,如表6 所示,其中,符號“√”表示滿足該要求,“×”表示不滿足該要求。文獻[13,16,18]方案無法抵抗Type II 攻擊,文獻[15]方案無法抵抗Type I 攻擊,而本文方案在隨機預(yù)言模型下被證明是可以抵抗Type I 和Type II攻擊。在文獻[13,15]方案中,車輛每次通信使用的假名身份是相同的,而攻擊者可以根據(jù)靜態(tài)的假名身份追蹤車輛,因此文獻[13,15]方案只具備較弱的隱私保護能力。雖然文獻[19]方案的假名身份不是靜態(tài)的,但是無法抵抗偽裝RSU的攻擊,因此該方案的隱私保護能力較弱。文獻[14,16,18]方案滿足強力的隱私保護,但需要可信中心一次性為車輛生成和發(fā)送多個假名身份及相對應(yīng)的部分私鑰,這會增加額外的通信開銷,同時車輛設(shè)備需要存儲多個假名身份和部分私鑰,相應(yīng)地會加重車輛的存儲代價。另外,在文獻[13-16,18-19]方案中,車輛向驗證者提供的公鑰PKi是不變的,可能會成為攻擊者獲取車輛行駛路線的信息。在本文方案中,車輛的假名身份和公鑰隨著RSU 區(qū)域的變化而動態(tài)更新?;贑DH 問題,車輛利用隨機因子zi和RSU 的公鑰Yj更新假名身份和公鑰信息,無需接收和存儲多個假名身份和部分私鑰,解決了私鑰頻繁更新的問題,避免了額外的存儲代價和通信開銷。
表6 不同方案的安全性能對比Tab.6 Comparison of security performance for different schemes
綜上所述,與文獻[13-14,19]方案相比,本文方案的計算、通信和安全性能更佳。另外,相較于文獻[15-16,18]方案,本文方案的通信和安全性能也具有一定的優(yōu)勢,而計算開銷則與對比方案基本處于同一水平。
本文對Thumbur等[15]和Mei等[14]的無證書聚合簽名方案進行了分析,發(fā)現(xiàn)他們的方案無法同時滿足強隱私保護和低系統(tǒng)開銷的要求。因此,本文提出了一種具有強隱私保護能力且計算高效的無證書聚合簽名方案。在本文方案中,車輛的假名身份和公鑰信息可以隨著RSU 所處區(qū)域的變化而動態(tài)更新,不僅滿足了車輛的匿名性,還避免了車輛被追蹤的風險?;贓CDL 問題,在隨機預(yù)言模型下證明了本文方案可以抵抗公鑰替換攻擊和惡意KGC 的攻擊。性能分析表明,與其他對比方案相比,本文方案在計算開銷、通信開銷和安全性方面都具有一定優(yōu)勢。在未來工作中,將在SUMO(Simulation of Urban MObility)、OMNET++(ObjectiveModular NEtwork Testbed in C++)仿真平臺上深入、完善地模擬本文方案。