吳甜甜,楊亞芳,趙運(yùn)磊
(復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 200433)
隨著經(jīng)濟(jì)的發(fā)展,全球的汽車保有量呈逐漸增長趨勢。車聯(lián)網(wǎng)(Internet of Vehicles,IoV)的產(chǎn)業(yè)化[1]和普及對于構(gòu)建和諧的汽車社會具有重要意義[2],但車聯(lián)網(wǎng)通信中的隱私泄露問題[3]嚴(yán)重阻礙了其應(yīng)用落地[4]。車輛在行駛過程中需要定期生成安全信息發(fā)送給其他車輛或設(shè)備,附近的車輛可以根據(jù)收到的交通信息及時(shí)做出反應(yīng)以避免交通混亂,如交通擁堵、交通事故等。在這種情況下,如果惡意車輛篡改他人發(fā)送的消息、冒充其他車輛發(fā)送信息或是故意發(fā)送虛假信息,都會造成嚴(yán)重的交通事故甚至人員傷亡[5]。對此,許多研究者設(shè)計(jì)了面向車聯(lián)網(wǎng)V2X(Vehicle to Everything)安全通信的條件隱私保護(hù)認(rèn)證協(xié)議。然而,現(xiàn)有協(xié)議大多只考慮車輛的可認(rèn)證性而忽略了用戶的可認(rèn)證性,不能適用于單車多用戶或單用戶多車的應(yīng)用場景,并且在發(fā)生糾紛時(shí)只能追溯到車輛的真實(shí)身份,不能追溯到用戶的真實(shí)身份。
本文提出一種面向車聯(lián)網(wǎng)安全通信的條件隱私保護(hù)認(rèn)證協(xié)議。該協(xié)議根據(jù)用戶身份信息和車輛身份信息生成車與用戶綁定的生物密鑰,適用于單車多用戶或單用戶多車的場景。同時(shí),協(xié)議支持車輛及用戶的條件隱私保護(hù),即消息認(rèn)證時(shí)不暴露車輛和用戶的身份信息,在特定情況下可追溯到用戶和車輛。此外,協(xié)議中消息批量驗(yàn)證的功能也可滿足車聯(lián)網(wǎng)低延時(shí)通信的要求。
許多研究者提出了不同的面向車聯(lián)網(wǎng)V2X的隱私保護(hù)認(rèn)證方案,其中一部分方案是基于公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)設(shè)計(jì)的,如IEEE 1609.2中PKI 被標(biāo)準(zhǔn)化,用于V2X 的安全應(yīng)用。在傳統(tǒng)基于PKI 的密碼體制中,由證書機(jī)構(gòu)(Certification Authority,CA)為用戶頒發(fā)證書,通信雙方可以通過消息的數(shù)字簽名來保證消息來源的可靠性。在文獻(xiàn)[6]提出的方案中,車輛會在一定的時(shí)間間隔內(nèi)向CA 請求短期假名。為減少與CA 的通信開銷,文獻(xiàn)[7]提出了車輛自我生成假名的機(jī)制。文獻(xiàn)[8]提出一種假名變更策略,避免了同一假名使用時(shí)間過長而被跟蹤的問題。文獻(xiàn)[9]提出的MixGroup 隱私保護(hù)方案通過使用假名交互策略和集成群組簽名機(jī)制構(gòu)造擴(kuò)展的假名更改區(qū)域,允許該區(qū)域內(nèi)的車輛連續(xù)交換其假名,更大程度上保護(hù)了車輛的位置隱私。盡管PKI 針對車聯(lián)網(wǎng)可以提供認(rèn)證性和不可否認(rèn)性等安全特性,但存在一些不足,其中最重要的是證書管理帶來的巨大通信和計(jì)算開銷。文獻(xiàn)[10]通過改進(jìn)現(xiàn)有的車輛PKI 并引入布隆過濾器壓縮證書撤銷列表,在保證隱私的前提下提出了有效的假名撤銷方案。
此外,對稱加密方案也被廣泛應(yīng)用于V2X 通信。相比于PKI,使用MAC 碼進(jìn)行消息認(rèn)證的對稱密碼具有更高的計(jì)算效率和更低的通信負(fù)載,因而更為高效。文獻(xiàn)[11]首次提出了基于對稱密碼的車聯(lián)網(wǎng)認(rèn)證協(xié)議,而在文獻(xiàn)[12]提出的協(xié)議中,車輛在沒有中央授權(quán)的情況下保留用于認(rèn)證的隨機(jī)密鑰集,以便在零信任策略下保護(hù)用戶的隱私。文獻(xiàn)[13-14]提出了雙重認(rèn)證和密鑰托管技術(shù),一方面利用雙重認(rèn)證機(jī)制提供更高的安全性,防止未授權(quán)的車輛進(jìn)入到網(wǎng)絡(luò)中,另一方面利用雙重認(rèn)證的群組密碼管理機(jī)制有效地將群組密鑰分發(fā)給所有成員。文獻(xiàn)[15]提出一種基于對稱密碼的輕量級認(rèn)證協(xié)議,使用存儲在防篡改設(shè)備中的哈希鏈,通過不斷更新密鑰種子實(shí)現(xiàn)了系統(tǒng)密鑰的更新。然而,基于對稱密碼的認(rèn)證協(xié)議因存在密鑰管理問題而易受攻擊,并且會導(dǎo)致通信和存儲的開銷,同時(shí)此類協(xié)議缺乏不可否認(rèn)性,無法為每輛車都提供認(rèn)證。
除上述兩類方案外,許多基于身份的方案也被相繼提出。在基于身份基簽名(Identity-Based Signature,IBS)的方案中,節(jié)點(diǎn)的身份被作為公鑰,基于身份生成的私鑰被用于對消息進(jìn)行簽名,從而避免為公鑰分配證書,省去了繁重的證書管理工作。文獻(xiàn)[16]設(shè)計(jì)一種基于橢圓曲線密碼的身份基簽名,并將其應(yīng)用在V2X 通信中。文獻(xiàn)[17]提出的方案能夠支持批量驗(yàn)證,文獻(xiàn)[18-19]提出的方案則在效率上取得了提高。文獻(xiàn)[20]提出一種不需要任何限制的身份認(rèn)證協(xié)議,其不依賴于任何路側(cè)單元(Road Side Unit,RSU)、假名和防篡改設(shè)備,可實(shí)現(xiàn)車輛間的相互認(rèn)證。文獻(xiàn)[21]提出一種結(jié)合PKI 和身份基的混合條件隱私保護(hù)認(rèn)證協(xié)議。在該協(xié)議中,基于身份的簽名避免了證書撤銷列表的檢查和復(fù)雜的雙線性配對操作。同時(shí),可信任第三方可以通過撤銷唯一的長期證書為車輛撤銷身份。
此外,一些無證書簽名方案也被應(yīng)用到車聯(lián)網(wǎng)環(huán)境中。文獻(xiàn)[22]提出一種名為CLMA 的無證書匿名認(rèn)證機(jī)制。該機(jī)制基于環(huán)上容錯學(xué)習(xí)問題和支持口令認(rèn)證的密鑰交換技術(shù),在車輛通過路側(cè)單元訪問車輛云服務(wù)時(shí),能夠提供相互認(rèn)證功能。文獻(xiàn)[23]提出一種基于Schnorr 的隱式證書認(rèn)證方案SCMS,其將驗(yàn)證簽名者公鑰有效性和驗(yàn)證簽名的過程相結(jié)合,相比于現(xiàn)有基于公鑰的方案進(jìn)一步提高了V2X 通信的效率。文獻(xiàn)[24]提出一種名為SE-CLASA 的基于無證書的認(rèn)證協(xié)議。該協(xié)議不依賴于完全受信任的第三方,且簽名方案支持聚合,能夠抵抗信息注入攻擊。
傳統(tǒng)場景假設(shè)一輛車僅供一個合法用戶使用,在用戶登錄車輛之前并不對用戶的身份進(jìn)行認(rèn)證,存在安全隱患,而實(shí)際中存在單車多用戶或單用戶多車的場景。單車多用戶場景指的是同一輛車可能需要被不同的用戶駕駛;單用戶多車場景指的是同一個用戶可能擁有多輛車的使用權(quán)。此時(shí),需要在用戶登錄車輛前對用戶身份的合法性進(jìn)行驗(yàn)證,只有具有權(quán)限的合法用戶才能登錄車輛并拒絕非法用戶。目前大部分方案由于不具備用戶可認(rèn)證性,因此并不適用于單車多用戶或單用戶多車的場景。
傳統(tǒng)方案將車輛行駛通信時(shí)的車和用戶看作一個整體,當(dāng)發(fā)生糾紛時(shí)僅可追溯到發(fā)送消息的車輛而不能確定消息的來源用戶。例如,在單車多用戶場景中,某用戶駕駛車輛超速行駛,交通監(jiān)管部門需要對駕駛車輛的用戶進(jìn)行處罰,此時(shí),該用戶可能會否認(rèn)駕駛過該車輛或聲稱是其他用戶駕駛從而逃避處罰。因此,在確定消息來源時(shí),不僅需要追溯發(fā)送該消息的車輛的真實(shí)身份,而且還需要追溯發(fā)送該消息的用戶的真實(shí)身份。
設(shè)G1、G2和GT為大素?cái)?shù)p階的乘法循環(huán)群,g1和g2分別是G1和G2中的元素。雙線性映射e:G1×G2→GT具有以下特點(diǎn):
1)雙線性:對任意的g1?G1,g2?G2,?a,b?,e(,)=e(g1,g2)ab。
2)非退化性:令g1和g2分別 是G1和G2的生成元,e(,)≠1。
3)可計(jì)算性:對所有的g1?G1和g2?G2,e(g1,g2)都是可以高效計(jì)算的。
橢圓曲線離散對數(shù)問題(Elliptic Curve Discrete Logarithm Problem,ECDLP)描述如下:令G為有限域上的橢圓曲線群,P為G的生成元,給定橢圓曲線中的元素P,Q?G,對于任意概率多項(xiàng)式時(shí)間的算法,計(jì)算未知的a,使得Q=aP。
輸入任意長度的消息x,哈希函數(shù)h可以輸出一個短的、定長的比特串y作為其消息摘要。如果一個哈希函數(shù)滿足以下3 個性質(zhì),則稱該哈希函數(shù)是安全的:
1)單向性:對任意輸入x,計(jì)算h(x)是容易的;對給定y,計(jì)算x使得y=h-1(x)是困難的。
2)弱抗碰撞性:給定x1,計(jì)算出x2且x1≠x2使得h(x1)=h(x2)是困難的。
3)強(qiáng)抗碰撞性:找到一組x1≠x2使得h(x1)=h(x2)是困難的。
生物信息即生物特征,每個人都具有獨(dú)特的生物特征,分為身體特征和行為特征兩種。身體特征是與生俱來的先天特征,主要包括指紋、虹膜、面容、聲紋等;行為特征是后天形成的具有個人特色的行為和習(xí)慣,主要包括簽名、語音等。可以用于身份驗(yàn)證的生物特征應(yīng)具有以下特點(diǎn):
1)普遍性:每個人都擁有該生物特征。
2)唯一性:每個人的該生物特征都是唯一的。
3)不易變性:該生物特征很難發(fā)生變化。
4)可采集性:在現(xiàn)有技術(shù)下,該生物特征容易采集并儲存。
5)安全性:該生物特征很難被偽造。
在車聯(lián)網(wǎng)環(huán)境中,可使用生物特征對用戶進(jìn)行身份驗(yàn)證,通過生物特征識別技術(shù)將生物傳感器獲取到的生物信息轉(zhuǎn)換為可直接計(jì)算的數(shù)據(jù)。車聯(lián)網(wǎng)中的生物信息主要被用于注冊階段和用戶認(rèn)證階段。注冊階段利用傳感器收集用戶的生物信息,將其轉(zhuǎn)換為計(jì)算機(jī)可識別的信息并進(jìn)行存儲;用戶認(rèn)證階段利用傳感器收集用戶生物信息并與數(shù)據(jù)庫中存儲的信息進(jìn)行比對,從而驗(yàn)證用戶的合法性。
如圖1 所示,本文協(xié)議中包含4 種實(shí)體,即用戶、車載單元(On-Board Uint,OBU)、路側(cè)單元(RSU)和可信任第三方(Trusted Authority,TA)。
圖1 系統(tǒng)模型Fig.1 System model
1)用戶是車輛的駕駛員,協(xié)議使用用戶的生物信息代表其身份信息。在單車多用戶或單用戶多車場景中,同一用戶可能擁有多輛汽車,同一車輛可能由多個用戶使用。
2)OBU 包括生物設(shè)備(Biometric Device,BD)和防篡改設(shè)備(Tamper Proof Device,TPD)。BD 用于存儲生物信息;TPD 用于存儲密碼材料?,F(xiàn)有技術(shù)可保證TPD 不可篡改且不可通過暴力手段獲取其中信息。所有聯(lián)網(wǎng)汽車均安裝電子單元OBU。
3)RSU 為路側(cè)單元,可以與RSU 轄區(qū)內(nèi)的車輛進(jìn)行通信。
4)TA 為完全可信任的第三方認(rèn)證機(jī)構(gòu),擁有無限的計(jì)算資源和存儲空間。
V2X 通信主要包括V2V(Vehicle to Vehicle)通信和V2I(Vehicle to Infrastructure)通信兩類。V2V通信是指車輛與車輛之間的通信;V2I 通信是指車輛與RSU 之間的通信。
一個安全的面向車聯(lián)網(wǎng)通信的條件隱私保護(hù)認(rèn)證協(xié)議應(yīng)滿足以下要求:
1)匿名性:在通信過程中,除TA 以外的任何人不能獲得車輛的真實(shí)身份信息。
2)不可偽造性:任意攻擊者不能偽造出合法的簽名。
3)強(qiáng)可追溯性:在發(fā)生糾紛時(shí),TA 不僅可以追溯到發(fā)送信息的車輛的真實(shí)身份,而且還可以追溯到發(fā)送該消息的用戶的真實(shí)身份。
4)不可鏈接性:任意車輛不能確認(rèn)接收的不同信息是否來源于同一車輛。
5)抵御中間人攻擊:攻擊者不能實(shí)現(xiàn)中間人攻擊。
本文提出的面向車聯(lián)網(wǎng)安全通信的條件隱私保護(hù)認(rèn)證協(xié)議由8 個算法組成,具體如下:
1)系統(tǒng)初始化算法Setup。該算法由TA 執(zhí)行,輸入安全參數(shù)λ,輸出系統(tǒng)私鑰和公共參數(shù)params。
2)注冊算法Register。該算法由TA 執(zhí)行,輸入車輛Vi的真實(shí)身份RIDi、用戶的身份信息pu和車輛的相關(guān)信息Infoi,u,完成車輛和用戶的注冊功能。在此階段,TA 生成車輛和用戶綁定的生物密鑰和初始匿名身份,并為OBU 配置必要的參數(shù)。
3)用戶認(rèn)證算法UserVerify。該算法由車輛的BD 單元執(zhí)行,輸入未經(jīng)驗(yàn)證的用戶身份信息,完成用戶車輛身份認(rèn)證功能。
4)離線匿名身份生成算法PidGen。該算法由車輛的TPD 單元執(zhí)行,輸入車輛的初始匿名身份,為車輛生成簽名需要的匿名身份和私鑰
5)消息簽名算法MesSign。該算法由消息的發(fā)送方執(zhí)行,輸入簽名消息Mi,輸出對應(yīng)消息的簽名。
6)消息驗(yàn)證算法MesVerify。該算法由消息的接收方執(zhí)行,輸入(PIDi,Mi,Ts,σi)。輸出一位b。若簽名合法,則b=1,否則b=0,完成對消息的認(rèn)證。
7)批量驗(yàn)證算法BatchVerify。該算法由消息的接收方執(zhí)行,輸入需要驗(yàn)證的多條消息簽名,輸出一位b。若簽名合法,則b=1,否則b=0,完成對消息的批量驗(yàn)證。
8)追溯算法Trace。該算法由可信任第三方執(zhí)行,輸入車輛的匿名身份PIDi,輸出用戶和車輛的真實(shí)身份信息。
本文協(xié)議的安全性由定義在挑戰(zhàn)者C 和敵手A之間的游戲(Game)進(jìn)行界定。游戲過程如下:
1)Setup 階段。挑戰(zhàn)者C 輸入安全參數(shù)λ,運(yùn)行Setup 算法生成系統(tǒng)私鑰和公共參數(shù)params,并將params 發(fā)送給敵手A。
2)Query 階段。敵手A 可以任意詢問以下預(yù)言機(jī):
(1)哈希詢問h-Oracle:敵手A 輸入任意數(shù)據(jù)x,挑戰(zhàn)者C 將對應(yīng)的h(x)輸出給A。
(2)哈希詢問H-Oracle:敵手A 輸入任意數(shù)據(jù)x,挑戰(zhàn)者C 將對應(yīng)的H(x)輸出給A。
(3)簽名詢問Sign-Oracle:敵手A 輸入需要簽名的消息M*,挑戰(zhàn)者C 將生成的簽名消息{PID*,M*,Ts*,σ*}返回給A。
3)Forge 階段。敵手A 輸入M*,輸出偽造的消息簽名{PID*,M*,Ts*,σ*}。
定義敵手贏得游戲當(dāng)且僅當(dāng){PID*,M*,Ts*,σ*}是一個有效的簽名且簽名預(yù)言機(jī)從未收到過簽名詢問M*。
定義1選擇消息攻擊下存在性不可偽造性
如果敵手A 贏得Game 的概率是可忽略的,那么本文協(xié)議中的簽名方案在適應(yīng)性選擇消息攻擊下是存在性不可偽造的。
本文協(xié)議中的符號和參數(shù)定義如表1 所示。
表1 符號和參數(shù)定義Table 1 Definition of symbols and parameters
本文協(xié)議中的算法描述如下:
1)Setup(1λ)→params
輸入安全參數(shù)λ,TA 的具體操作如下:
(1)TA 隨機(jī)選取兩個大素?cái)?shù)p、q和非平凡的橢圓曲線E:y2=x3+ax+bmodp,其 中a,b?Fp。令G為橢圓曲線E上的所有點(diǎn)和無窮遠(yuǎn)點(diǎn)O構(gòu)成的群,隨機(jī)選取群G中階為q的生成元P。
(2)TA 隨機(jī)選取x?,s?,設(shè)置系統(tǒng)私鑰SK=x和身份設(shè)置私鑰sk=s,以及系統(tǒng)公鑰PK=xP和身份設(shè)置公鑰pk=sP。
(3)TA 選取安全的抗碰撞哈希函數(shù)hl、h、H,函數(shù)形式分別為:hl:(0,1)*→(0,1)l,h:G→(0,1)l,H:(0,1)*→。
設(shè)置系統(tǒng)公共參數(shù)params=(G,p,q,P,PK,pk,hl,h,H)。
2)Register(RIDi,pu,Infoi,u)
TA 完成系統(tǒng)初始化后,車輛和用戶即可注冊。用戶將生物信息錄入車輛傳感器中,生成身份信息pu。注冊時(shí),車輛將(RIDi,pu,Infoi,u)發(fā)送給TA,TA對信息的正確性進(jìn)行驗(yàn)證后執(zhí)行以下操作:
(1)計(jì)算生物密鑰pwi,u=hl(RIDi⊕pu)。
(2)隨機(jī)生成車輛Vi和用戶pu綁定的初始匿名身份。
(3)添加(number,RIDi,pu,pwi,u,,Infoi,u)到維護(hù)的注冊信息列表,其中,number 為條目的編號。
(4)分別計(jì)算keeperi.u=(RIDi⊕pwi,u)和verifieri,u=hl(pwi,u)。
(5)為BD單元配置參數(shù)(pwi,u,keeperi,u,verifieri,u),為TPD單元配置參數(shù)
需要登錄車輛的未經(jīng)驗(yàn)證的用戶向車輛傳感器輸入生物信息,生成用戶身份,由車輛的BD 單元執(zhí)行UserVerify 算法驗(yàn)證用戶的身份合法性。具體操作如下:
(2)查詢是否存在pwi,u=。若不存在,則拒絕;否則根據(jù)存儲結(jié)果獲取pwi,u所對應(yīng)的keeperi,u和verifieri,u,繼續(xù)下述操作。
該算法由OBU中的TPD執(zhí)行,輸入U(xiǎn)serVerifer()中經(jīng)過驗(yàn)證后獲得的初始化匿名身份,離線生成匿名身份和簽名私鑰。具體操作如下:
(1)隨機(jī)選取wi?。
(2)計(jì)算PIDi=
(3)設(shè)置PIDi對應(yīng)的簽名私鑰ski=wi。
(4)輸出
5)MesSign(Mi,
該算法輸入需要簽名的消息Mi,由TPD 單元執(zhí)行。具體操作如下:
(1)在上述過程中離線生成的匿名身份和密鑰對中隨機(jī)選取一組
(2)計(jì)算fi=H(PIDi||Mi||Ts)。
(3)計(jì)算σi=ski+fi˙SK modq。
(4)輸出{PIDi,Mi,Ts,σi}并進(jìn)行廣播。
6)MesVerify(PIDi,Mi,Ts,σi)→b
該算法由接收方完成,對接收信息{PIDi,Mi,Ts,σi}進(jìn)行驗(yàn)證,輸出一位b。若b=1,則表示接收消息簽名,若b=0,則表示拒絕消息簽名。具體操作如下:
(1)設(shè)當(dāng)前系統(tǒng)的時(shí)間為Tcur,有效時(shí)間差為Δ。若|Tcur-Ts|>Δ,則當(dāng)前消息失效,丟棄;否則繼續(xù)下述步驟。
(2)計(jì)算fi=H(PIDi||Mi||Ts)。
(3)驗(yàn)證σi˙P=PIDi,1+fi˙PK 是否成立。若等式成立,輸出b=1,否則輸出b=0。
7)BatchVerify({PID1,M1,Ts1,σ1},{PID2,M2,Ts2,σ2},…,{PIDn,Mn,Tsn,σn})→b
為提高通信效率,車輛在同一時(shí)間收到其通信范圍內(nèi)的多條簽名信息后,使用批量驗(yàn)證提高驗(yàn)證的效率。輸入車輛接收到的多條信息{PID1,M1,Ts1,σ1},{PID2,M2,Ts2,σ2},…,{PIDn,Mn,Tsn,σn},輸出一位b。若b=1,則表示接收這些消息簽名,若b=0,則表示拒絕這些消息簽名。具體操作如下:
(1)接收方檢驗(yàn)所有信息中的時(shí)間Tsi是否有效,若無效則拒絕接收該消息,其中,i=1,2,…,n。
(2)隨機(jī)選取一組由隨機(jī)整數(shù)構(gòu)成的向量c={c1,c2,…,cn},其中,ci?[1,2t],t為一個小整數(shù)。
8)Trace(PIDi)→(RIDi,pu)
該算法輸入匿名身份PIDi,實(shí)現(xiàn)對真實(shí)身份的追溯。具體操作如下:
(1)計(jì)算α=sk ˙PIDi,1=s˙PIDi,1。
(3)查詢(number,RIDipu,pwi,u,,Infoi,u),輸出車輛初始化匿名身份對應(yīng)的車輛真實(shí)身份RIDi和用戶真實(shí)身份pu。
本文協(xié)議中的簽名方案滿足計(jì)算正確性,其單條消息驗(yàn)證和批量驗(yàn)證過程如下:
對本文協(xié)議的安全性從匿名性、不可偽造性、強(qiáng)可追溯性、不可鏈接性和抵御中間人攻擊這5 個方面進(jìn)行形式化證明。
定理1(匿名性)除了TA,沒有人可以知道發(fā)送消息的車輛真實(shí)身份。
證明車輛的真實(shí)身份RIDi僅在車輛注冊階段通過安全信道發(fā)送給TA,只有TA 維護(hù)表格(number,RIDi,pu,pwi,u,,Infoi,u)。在此階段,除了車輛和TA 之外,任何第三方均不能獲得車輛的真實(shí)身份。車輛在后續(xù)消息的簽名驗(yàn)證過程中使用匿名身份。該匿名身份在注冊階段由TA 為車輛生成,即使攻擊者對簽名消息竊聽,也不能獲取車輛的真實(shí)身份RIDi。
定理2(不可偽造性)假設(shè)ECDLP 問題是困難的,在隨機(jī)預(yù)言機(jī)模型下,本文方案是適應(yīng)性選擇消息攻擊下存在性不可偽造的。
證明在隨機(jī)預(yù)言機(jī)模型下,假設(shè)存在敵手A能夠在多項(xiàng)式時(shí)間t內(nèi)以不可忽略的概率在游戲中獲勝,則存在算法C 能夠以不可忽略的概率解決ECDLP困難問題。
假設(shè)算法C 是一個關(guān)于ECDLP 的有效算法,輸入為(P,Q)?G,其中Q=aP且a未知,則C 的目標(biāo)是計(jì)算出a。定義敵手A 可以偽造出本文協(xié)議中的消息簽名{PID*,M*,Ts*,σ*},算法C 可以充當(dāng)游戲的挑戰(zhàn)者,運(yùn)行敵手A 作為子程序解決ECDLP 困難問題。挑戰(zhàn)者C 和敵手A 之間的游戲交互過程如下:
1)Setup 階段。挑戰(zhàn)者C 設(shè)置系統(tǒng)公鑰為PK=Q,任意選取s?,設(shè)置sk=s,pk=sP,并將公共參數(shù)params 發(fā)送給敵手A,params=(G,p,q,P,pk,PK,hl,h,H)。
2)Query 階段。C 建立初始為空的列表Lh和LH。Lh中存儲元組<Γ,τ>,Γ?G,τ?{0,1}l;LH中存儲元組{PIDi,Mi,Ts,βi},βi?。當(dāng)敵手A 進(jìn)行詢問時(shí),C 做出對應(yīng)的回答:
(1)h-Oracle。敵手A 輸入數(shù)據(jù)Γ時(shí),C 查詢Lh。若存在元組<Γ,τ>,則將τ返回給A;否則,任意選取τ?{0,1}l,存儲<Γ,τ>到列表Lh,并將τ返回給A。
(2)H-Oracle。當(dāng)敵手A 輸入任意元組{PIDi,Mi,Ts}時(shí),C 查詢LH。若存在元組{PIDi,Mi,Ts,βi},則將βi返回給A;否則,任意選取βi?,存儲{PIDi,Mi,Ts,βi}到列表LH,并將βi返回給A。
(3)Sign-Oracle。敵手A 輸入需要簽名的消息Mi,挑戰(zhàn)者C 任意選取σi,βi?,任意選取PIDi,2?{0,1}l。計(jì)算PIDi,1=σi˙P-βi˙PK,將生成的簽名消息{PIDi,Mi,Ts,σi}返回給A。
3)Forge 階段。敵手A 輸入M*,輸出偽造的消息簽名{PID*,M*,Ts*,σ*}。
對于敵手A 而言,可以很容易地驗(yàn)證σi˙P=PIDi,1+βi˙PK,因此,挑戰(zhàn)者C 模擬的環(huán)境與真實(shí)的環(huán)境是不可區(qū)分的。
假設(shè)敵手以不可忽略的概率ε贏得游戲。根據(jù)分叉引理[25],挑戰(zhàn)者C 在相同的預(yù)言機(jī)詢問下設(shè)置H-Oracle下不同的回答,敵手A 可以偽造出2 個不同的合法簽名,分別為{PIDi,Mi,Ts,σi}和{PIDi,Mi,Ts,}。此時(shí),σi˙P=PIDi,1+βi˙PK 和˙P=PIDi,1+˙PK 成立,由此可以得到:
則挑戰(zhàn)者C 可以以不可忽略的概率ε′輸出a=(σi-)·(βi-)-1作為ECDLP 問題的答案,這與假設(shè)的ECDLP問題是困難這一前提相矛盾。因此,本文協(xié)議中的簽名方案在隨機(jī)預(yù)言機(jī)模型下是適應(yīng)性選擇消息攻擊下存在性不可偽造的。
定理3(強(qiáng)可追溯性)本文方案允許TA 對車輛和用戶的真實(shí)身份進(jìn)行追蹤。
證明假設(shè)系統(tǒng)中存在惡意車輛發(fā)送的虛假消息{PIDi,Mi,Ts,σi},此時(shí),TA 可以通過執(zhí)行算法Trace(PIDi)來獲取車輛和用戶的真實(shí)身份信息。因此,本文方案可以實(shí)現(xiàn)對車輛和用戶身份的可追溯性。
定理4(不可鏈接性)除了TA,任何人無法通過接收到的多條信息來確定這些信息是否來自同一輛車。
證明假設(shè)車輛接收到的多條信息分別為{PID1,M1,Ts1,σ1},{PID2,M2,Ts2,σ2},…,{PIDn,Mn,Tsn,σn},對于其中的任意兩條消息,唯一包含車輛身份信息的部分為PIDi,并且PIDi僅使用1 次。對于任意的PID1和PID2,只有獲取到其對應(yīng)的才可鏈接到同一車輛。而除了TA 之外,任何人無法獲得執(zhí)行Trace 需要的私鑰sk。因此,任何人無法通過接收到的多條信息鏈接到同一車輛。
定理5(抵御中間人攻擊)攻擊者無法執(zhí)行中間人攻擊。
證明對發(fā)送方和接收方而言,攻擊者可能作為中間人對消息進(jìn)行竊聽和篡改。UserVerify 算法能夠保證惡意用戶無法登錄任意的車輛進(jìn)入到系統(tǒng)中。MesSign 算法能夠保證惡意車輛無法對消息進(jìn)行篡改,因?yàn)閷ο⒌拇鄹囊馕吨粽弑仨毥鉀QECDLP 困難問題。因此,本文協(xié)議可以抵御中間人攻擊。
為驗(yàn)證本文協(xié)議的性能優(yōu)勢,在Intel i5、12 GB內(nèi)存、Ubuntu 操作系統(tǒng)的實(shí)驗(yàn)環(huán)境下,借助GMP(The GNU MP Bignum Library)、PBC(Pairing-Based Cryptography)[26]和RELIC 密碼庫,使用C 語言實(shí)現(xiàn)本文協(xié)議和一系列基于橢圓曲線的協(xié)議及基于雙線性配對的協(xié)議,并分別從計(jì)算開銷和通信開銷兩方面進(jìn)行對比。
對比本文協(xié)議與CPAS[16]、JMLO[17]、SASV[18]、CPPA[19]、NEAS[20]和HCPA[21]協(xié)議在簽名、單條消息驗(yàn)證和批量驗(yàn)證中的計(jì)算開銷。這些對比協(xié)議都是基于身份的協(xié)議。
對于雙線性配對的方案,選取雙線性配對e:G1×G1→G2來實(shí)現(xiàn)80 bit 的安全等級。G1是階為qˉ的定義在E:y2=x3+xmod上的橢圓曲線加法群,其中為512 bit 的素?cái)?shù)為160 bit 的Solinas 素?cái)?shù),且有。對于基于橢圓曲線群設(shè)計(jì)的方案,為實(shí)現(xiàn)80 bit 的安全等級,同樣選取定義在E:y2=x3+ax+bmodp上的橢圓曲線加法群G,其中,P為群G的階為q的生成元,p和q為160 bit 的素?cái)?shù),a,b?。為方便表示,給出各操作的符號定義和平均時(shí)間,如表2 所示。
表2 操作定義與平均時(shí)間Table 2 Operation definition and average time
對比不同協(xié)議進(jìn)行單條消息簽名驗(yàn)證時(shí)的操作數(shù),如表3 所示??梢钥闯觯涸贑PAS 協(xié)議中,簽名需要執(zhí)行3 次雙線性配對相關(guān)的點(diǎn)乘操作、2次雙線性相關(guān)的點(diǎn)加操作和1 次一般的哈希操作,因此,該協(xié)議簽名階段的操作數(shù)為3Bp(sm)+2Bp(pa)+Hash;在本文協(xié)議中,簽名僅需要執(zhí)行2 次ECC 相關(guān)的點(diǎn)乘操作和2次一般的哈希操作,因此,本文協(xié)議簽名階段的操作數(shù)為2Ecc(sm)+2Hash。同理可得其他協(xié)議的操作數(shù)。
由表2 和表3 的結(jié)果繪制本文協(xié)議與其他對比協(xié)議的消息簽名驗(yàn)證計(jì)算開銷對比圖,如圖2 所示??梢钥闯觯疚膮f(xié)議簽名驗(yàn)證階段的計(jì)算量小于所有對比協(xié)議。
圖2 消息簽名驗(yàn)證計(jì)算開銷對比Fig.2 Comparison of computational cost for message signature and verification
表3 消息簽名驗(yàn)證操作數(shù)對比Table 3 Comparison of number of operations for message signature and verification
每秒執(zhí)行本文協(xié)議和其他協(xié)議所得的簽名和驗(yàn)證消息的數(shù)目如表4 所示??梢钥闯?,本文協(xié)議相較于其他對比協(xié)議在單位時(shí)間內(nèi)可簽名和驗(yàn)證的消息數(shù)量更多,表明其效率更高,這是因?yàn)楸疚膮f(xié)議是基于ECC 設(shè)計(jì)的,與基于雙線性配對的方案相比更為高效。
表4 消息簽名驗(yàn)證效率對比Table 4 Comparison of efficiency of message signature and verification
將本文協(xié)議與支持批量驗(yàn)證的基于身份的協(xié)議進(jìn)行對比,如表5 所示,其中,n為批量驗(yàn)證的消息數(shù)目,同時(shí)對比批量認(rèn)證中本文協(xié)議與對比協(xié)議的時(shí)間消耗,如圖3 所示。可以看出,本文方案在批量驗(yàn)證階段的效率高于其他對比協(xié)議。
表5 批量驗(yàn)證操作數(shù)對比Table 5 Comparison of number of operations for batch verification
圖3 批量驗(yàn)證時(shí)間對比Fig.3 Comparison of time for batch verification
分析本文協(xié)議與其他對比協(xié)議的通信開銷。由于選取的pˉ和p分別為512 bit和160 bit,因此群G1和群G中的元素分別為128 Byte和40 Byte。此外,一般的哈希函數(shù)輸出為20 Byte,時(shí)間戳為4 Byte。對各協(xié)議中的簽名消息長度進(jìn)行分析可知:在CPAS方案中,車輛廣播的匿名身份和消息簽名為(AIDi,Ti,Ui,Vi,Wi),AIDi=(AIDi.1,AIDi,2),其中,,Ui,Vi,Wi?G1,Ti為時(shí)間戳,因此,CPAS 廣播的長度為128 Byte×5 Byte+4 Byte=644 Byte;而在本文方案中,廣播的身份和簽名部分為{PIDi,Ts,σi},PIDi,1,PIDi,2?G,Ts 為時(shí)間戳,σi?,所以,本文方案的通信開銷為40 Byte×2 Byte+20 Byte+4 Byte=104 Byte。其他方案的通信開銷計(jì)算同理。
對不同協(xié)議的通信負(fù)載進(jìn)行對比,如表6 所示??梢钥闯?,對比協(xié)議大多基于雙線性配對來實(shí)現(xiàn),通信負(fù)載較高,而本文協(xié)議發(fā)送單條消息的負(fù)載相對較低。
表6 通信開銷對比Table 6 Comparison of communication overhead Byte
對本文協(xié)議與現(xiàn)有協(xié)議進(jìn)行功能對比。除基于身份設(shè)計(jì)的方案之外,還將本文協(xié)議與基于PKI 的協(xié)議IFAL[27]、基于對稱密碼的協(xié)議DLAP[15]和基于無證書的協(xié)議SE-CLASA[24]進(jìn)行對比,如表7 所示,其中,√表示滿足該性質(zhì),×表示不滿足該性質(zhì)??梢钥闯?,本文協(xié)議在滿足匿名性、不可偽造性、強(qiáng)可追溯性、不可鏈接性和抵御中間人攻擊這5 個安全目標(biāo)的前提下,同時(shí)還適用于單車多用戶和單用戶多車的應(yīng)用場景,并且還可抵御重放攻擊,具備不可否認(rèn)性。本文協(xié)議是表7 所有協(xié)議中唯一滿足匿名性、不可偽造性、強(qiáng)可追溯性、不可鏈接性、不可否認(rèn)性、抵御中間人攻擊、抵御重放攻擊,并且適用于單車多用戶或單用戶多車應(yīng)用場景的協(xié)議。
表7 協(xié)議功能對比Table 7 Comparison of protocol function
針對現(xiàn)有V2X 通信認(rèn)證協(xié)議不支持用戶認(rèn)證的問題,本文提出一種面向車聯(lián)網(wǎng)安全通信的條件隱私保護(hù)認(rèn)證協(xié)議。該協(xié)議適用于單車多用戶和單用戶多車的應(yīng)用場景,更具實(shí)用性。同時(shí)協(xié)議支持條件隱私保護(hù),通信過程中保護(hù)了車輛的真實(shí)身份信息,并且允許TA 在特定情況下追溯到車輛的真實(shí)身份信息。形式化的安全性分析結(jié)果證明了協(xié)議的安全性,性能評估結(jié)果驗(yàn)證了協(xié)議的高效性。下一步將在本文協(xié)議中增加系統(tǒng)密鑰更新和安全身份撤銷功能,使其適用于更多應(yīng)用場景。