呂柳迪,鄭 東,2,張應(yīng)輝,2,3,閆 銘,蘇昊楠
(1.西安郵電大學(xué) 無線網(wǎng)絡(luò)安全技術(shù)國家工程實(shí)驗(yàn)室,陜西 西安 710121;2.衛(wèi)士通信息產(chǎn)業(yè)股份有限公司 衛(wèi)士通摩石實(shí)驗(yàn)室,北京 100070;3.中國密碼管理局 密碼科學(xué)技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,北京 100878)
根據(jù)短距離通信協(xié)議(dedicated short range communications,DSRC[1]),VANET[2]中每輛車每100 ms到300 ms會(huì)廣播交通安全信息,發(fā)送車輛駕駛相關(guān)信息給其它車輛,RSU可對其進(jìn)行回應(yīng),因此在大量消息傳輸?shù)能嚶?lián)網(wǎng)中提高簽名效率及驗(yàn)證效率受到了廣泛關(guān)注。文獻(xiàn)[3]提出了聚合簽名算法將來自n個(gè)用戶的n個(gè)不同消息的n個(gè)簽名聚合成單個(gè)短簽名;文獻(xiàn)[4]提出了在線/離線簽名方案,從預(yù)先計(jì)算的結(jié)果快速計(jì)算數(shù)字簽名,計(jì)算存儲(chǔ)成本降低;文獻(xiàn)[5,6]采用批量驗(yàn)證的方法驗(yàn)證交通流中產(chǎn)生的大量信息;文獻(xiàn)[7]提出基于身份的聚合簽名;文獻(xiàn)[8]提出了基于身份聚合簽名的完整域哈希,但認(rèn)證時(shí)需要大量雙線對運(yùn)算;文獻(xiàn)[9]中的無證書聚合簽名降低證書管理負(fù)擔(dān),驗(yàn)證時(shí)所消耗雙線對運(yùn)算較多;文獻(xiàn)[10]所提出的方案易遭到惡意攻擊,不能達(dá)到所要求的安全性,簽名能夠偽造成功。
本文介紹了一個(gè)安全有效的基于身份的在線/離線聚合簽名方案,解決了證書管理吊銷等問題,并且將簽名分為在線和離線兩個(gè)階段,用戶可重用離線階段預(yù)計(jì)算的信息,減少了簽名的時(shí)間,降低了計(jì)算開銷以及通信開銷。允許將多個(gè)簽名聚合成一個(gè)簽名,RSU只需驗(yàn)證一個(gè)簽名便可實(shí)現(xiàn)對眾多車載單元信息的認(rèn)證,減輕了RSU的工作量,提高了驗(yàn)證效率。方案中最終簽名長度變短,提高了傳輸效率。在自適應(yīng)選擇消息攻擊下,能夠抵抗存在性偽造。
考慮到車聯(lián)網(wǎng)通信的實(shí)際應(yīng)用要求,車載中斷在向路邊固定的基礎(chǔ)設(shè)施發(fā)送消息時(shí),由于不可靠的網(wǎng)絡(luò)傳輸,用戶的數(shù)據(jù)可能被惡意攻擊者篡改,或者會(huì)有不法用戶試圖接入該網(wǎng)絡(luò)中。因此,我們主要工作在于如何安全地實(shí)現(xiàn)對車輛的認(rèn)證,保證車載自組織網(wǎng)絡(luò)中用戶信息的安全需求。我們的系統(tǒng)模型如圖1所示。其中通信實(shí)體包括認(rèn)證中心(trusted authority,TA)、可信服務(wù)器、部署在道路兩旁的固定基礎(chǔ)設(shè)施RSU、車載通信單元OBU。
圖1 車聯(lián)網(wǎng)系統(tǒng)模型
其中的通信方式包括車輛OBU之間的通信和車輛與路邊基礎(chǔ)設(shè)施RSU間的通信,車輛與RSU之間的通信遵從DSRC協(xié)議。車輛間的通信采用無線傳輸方式,TA與RSU之間通過安全的有線網(wǎng)絡(luò)進(jìn)行連接。RSU與服務(wù)器和TA之間使用安全的傳輸協(xié)議,例如有線傳輸層安全協(xié)議(transport layer security,TLS)。
(1)TA是可信機(jī)構(gòu)的,用于生成系統(tǒng)參數(shù),密鑰管理。
(2)RSU將從OBU接受到的有效信息轉(zhuǎn)發(fā)給服務(wù)器,計(jì)算能力高于OBU,通信范圍大于OBU通信范圍。每一個(gè)RSU需要對從OBU接收到的簽名驗(yàn)證其正確性。
(3)服務(wù)器對RSU收集的車輛工作信息進(jìn)行分析并反饋給RSU,服務(wù)器可以幫助收集分析整個(gè)城市的交通密度,預(yù)測交通分布達(dá)到優(yōu)化交通燈控制的目的。
(4)添加了OBU的車輛可與附近的車輛或RSU進(jìn)行通信,每輛車都有其對應(yīng)的公私鑰,所有的消息在發(fā)送給相鄰的RSU前需簽名。
本文設(shè)計(jì)的基于身份的在線/離線聚合數(shù)字簽名方案主要實(shí)現(xiàn)以下功能:
(1)使用在線/離線簽名技術(shù),降低用戶計(jì)算開銷。
(2)簽名長度恒定,節(jié)省通信過程中的傳輸開銷。
(3)支持對來自不同用戶簽名消息的批量驗(yàn)證,提高驗(yàn)證效率。
基于身份的在線/離線聚合數(shù)字簽名應(yīng)該在自適應(yīng)選擇消息攻擊下抵抗存在性偽造。下面通過敵手A和挑戰(zhàn)者C之間的游戲來定義抗存在性偽造的安全模型。
(1)系統(tǒng)初始化
挑戰(zhàn)者C運(yùn)行系統(tǒng)初始化算法得到系統(tǒng)公開參數(shù)Params,并發(fā)送給敵手A。
(2)詢問階段
Hash詢問:對于任何輸入,挑戰(zhàn)者計(jì)算Hash值,返回給敵手A;Extract詢問:對于身份為IDj的敵手,挑戰(zhàn)者返回相對應(yīng)的私鑰skIDj;Sign詢問:對于任何身份為IDj的敵手的待簽名消息mj,挑戰(zhàn)者運(yùn)行在線/離線簽名算法生成簽名值σj,并返回給A。
(3)響應(yīng)
在經(jīng)過多項(xiàng)式次數(shù)詢問后,敵手A輸出身份 (ID1,ID2,…,IDn) 對n個(gè)消息 (m1,m2,…,mn) 的聚合簽名σ。如果A沒有進(jìn)行私鑰查詢,并且 (ID1,m1) 沒有進(jìn)行Sign查詢,σ為一個(gè)有效的簽名,則敵手A贏得游戲。
定義1 如果敵手A運(yùn)行時(shí)間最多為t,以不可忽略的優(yōu)勢ε贏得了游戲,且敵手A進(jìn)行Hash詢問的次數(shù)最多為qh次,Extract詢問的次數(shù)最多為qe次,Sign詢問的次數(shù)最多為qs次。則敵手A,以 (t,qh,qe,qs)-breaks基于身份的在線/離線聚合數(shù)字簽名系統(tǒng)S。如果沒有敵手可以 (t,qh,qe,qs)-breaks簽名系統(tǒng)S,則本方案在自適應(yīng)選擇消息攻擊下抵抗存在性偽造。
設(shè)k為安全參數(shù),q為k比特的大素?cái)?shù),G1是階為q的加法循環(huán)群,G2是階為q的乘法循環(huán)群。假設(shè)G1,G2上的離散對數(shù)問題是難解的。G1到G2的雙線性映射e:G1×G1→G2,滿足下面的性質(zhì):
e(aP,bQ)=e(P,Q)ab
(2)非退化性:存在P,Q∈G1, 使得e(P,Q)≠1G2。 因此當(dāng)P為G1的生成元時(shí),e(P,P)為G2的生成元。
(3)可計(jì)算性:對于所有的P,Q∈G1, 存在一個(gè)有效的算法計(jì)算e(P,Q)。
令G是素?cái)?shù)階為q的阿貝爾群,并且P是G的生成元。在加法群(G,+)中描述以下3個(gè)數(shù)學(xué)問題。
CDHP假設(shè):在多項(xiàng)式時(shí)間內(nèi)沒有運(yùn)行的算法,這可以解決具有不可忽略概率的CDHP問題。
(t′,ε′)-CDH群:如果存在運(yùn)行時(shí)間至多為t′的概率算法A,該算法可以以概率為ε′計(jì)算出CDH問題,則稱(t′,ε′)-CDH問題在群G上成立。
本方案實(shí)現(xiàn)了對多個(gè)簽名消息進(jìn)行批量驗(yàn)證,并且簽名的長度變得很短,這樣的聚合簽名在車聯(lián)網(wǎng)的應(yīng)用可以減少通信開銷。
(1)系統(tǒng)初始化算法
TA為可信中心,可驗(yàn)證車輛的身份信息,并負(fù)責(zé)生成系統(tǒng)參數(shù)、系統(tǒng)公私鑰及車輛節(jié)點(diǎn)的公私鑰。在網(wǎng)絡(luò)部署之前,TA為每一個(gè)RSU和OBU設(shè)置系統(tǒng)參數(shù),如下所示:
1)TA選擇一個(gè)安全參數(shù)k∈Z,生成一個(gè)素?cái)?shù)q,群G1,G2的階都為q,并且有雙線性對e:G1×G1→G2,P為G1的生成元。
(2)密鑰生成算法
車輛節(jié)點(diǎn)的身份標(biāo)識(shí)為IDj∈{0,1}*,TA為每一個(gè)IDj計(jì)算公鑰QIDj=H1(IDj), 私鑰為SIDj=sQIDj, 通過安全的信道將私鑰傳給相應(yīng)的車輛節(jié)點(diǎn)。
(3)簽名算法
當(dāng)車輛在路上行駛他們定期地廣播可能影響交通控制中心的決策和交通分布優(yōu)化的交通相關(guān)信息。為了確保消息的完整性,車輛發(fā)出的每一條信息都應(yīng)被簽名并且驗(yàn)證每一條接收的信息,簽名階段分為如下步驟:
1)離線簽名
每一個(gè)車輛節(jié)點(diǎn)Vj能源儲(chǔ)備較充足,因此可以執(zhí)行計(jì)算開銷較大的模冪運(yùn)算以及雙線性對運(yùn)算。當(dāng)簽名消息待定時(shí),車輛Vj執(zhí)行離線簽名進(jìn)行簽名的預(yù)計(jì),并將計(jì)算結(jié)果保存在本地。車輛可在下一次簽名時(shí)跳過此步驟直接利用結(jié)果進(jìn)行在線簽名,這樣可以減少簽名的時(shí)延。
身份為IDj的車輛Vj生成待發(fā)送的消息mj,車輛Vj計(jì)算:Yi=e(Ppub,Q)2i,i=0,1,…,l,l=|q|-1。
2)在線簽名
(4)聚合算法
對于車輛用戶集合,車輛節(jié)點(diǎn)Vj的身份為IDj,每一個(gè)車輛節(jié)點(diǎn)相對應(yīng)的消息簽名為
{σ1=(Y(1),R,Z1),σ2=(Y(2),R,Z2),…,σn=(Y(n),R,Zn)}
聚合者(任何一個(gè)車載通信單元OBU都可以充當(dāng)聚合者)負(fù)責(zé)將各個(gè)簽名聚合起來,形成一個(gè)聚合簽名,并計(jì)算
最終對消息mj,1≤j≤n的聚合簽名為σ(Y,R,Z)。
(5)批量驗(yàn)證
RSU接受到來自車輛發(fā)布的交通相關(guān)信息,需驗(yàn)證簽名確保相應(yīng)的車輛不冒充任何其它合法車輛或者傳播偽造的信息。
RSU收到來自車輛對于消息m1,m2,…,mn的簽名σ,RSU計(jì)算hj=H2(mj,R,Y(j)), 1≤j≤n。
驗(yàn)證下面等式是否成立
(1)
如果等式成立,接受簽名消息,并將消息廣播出去,否則拒絕。
簽名正確性:是對消息mj,j=1,2,…,n和身份IDj,j=1,2,…,n的有效簽名,則有以下運(yùn)算
e(Z,P)=
等式(1)成立,當(dāng)且僅當(dāng)
Y(j)=e(Ppub,P)yj,j=1,2,…,n
對于任何1≤j≤n,有
因此,驗(yàn)證成功。
定理1 假設(shè)G1,G2都是階為q的(t′,ε′)-CDH群,e(G1,G1)→G2為一個(gè)雙線性映射。在隨機(jī)預(yù)言機(jī)模型下,本文提出的方案是(t,ε,qh1,qh2qe,qs,N)-抵抗存在性偽造的,其中t和ε滿足
ε≥e(qs+N)ε′
t≤t′-CG1(qh1+qh2+2qs+N+2)
式中:e為自然對數(shù)的底,CG1是群G1中求冪和求逆運(yùn)算所需要的時(shí)間。
證明:假設(shè)敵手A偽造了一個(gè)有效的簽名。構(gòu)造一個(gè)算法B模擬挑戰(zhàn)者與敵手A交互,則t′次多項(xiàng)式時(shí)間算法B可以至少以概率ε′解決CDH問題。算法B計(jì)算出CDH問題的解abP∈G1。
(1)系統(tǒng)初始化:算法B計(jì)算Ppub=aP作為公鑰,將系統(tǒng)參數(shù)發(fā)送給敵手A。
(2)H1-Hash詢問:為了響應(yīng)H1的詢問,算法B維護(hù)列表 (IDj,αj,βj,cj), 記為L1。敵手A對身份IDj進(jìn)行H1詢問時(shí),算法B做出如下響應(yīng):
1)如果身份IDj存在于列表L1中,則算法B返回H1(IDj)=βj。 否則,算法B隨機(jī)選擇cj∈{0,1}, 使Pr[cj=0]=1/(qe+N)。
3)算法B將元組 (IDj,αj,βj,cj) 添加到列表L1中,并將H1(IDj)=βj發(fā)送給A。
(3)H2-Hash詢問:為了響應(yīng)H2的詢問,算法B維護(hù)列表 (mj,R,hj,Y(j)), 記為L2。敵手對mj和Y(j)進(jìn)行H2詢問時(shí),算法B做出如下響應(yīng):
1)如果 (mj,R,Y(j))存在于列表L2中,則算法B返回hj=(mj,R,Y(j))。
(4)Extract詢問
敵手詢問IDi的私鑰時(shí),算法B做如下響應(yīng):
1)算法B查詢列表L1中元組(IDj,αj,βj,cj)。 若cj=0,算法B輸出失敗并終止。
2)若cj=1,算法B計(jì)算sIDj=αjPpub=a(αjP)并將私鑰sIDj發(fā)送給敵手A。
(5)Sign詢問
敵手詢問身份為IDj對應(yīng)消息mj的簽名時(shí),算法B做出如下響應(yīng):
1)算法B查詢列表L1中的元組 (IDj,αj,βj,cj)。 如果cj=0,算法B輸出失敗并終止。
3)算法B計(jì)算Zj=(x+yj)Ppub+hjsIDj, 將簽名σj=(Y(j),R,Zj) 發(fā)送給敵手A。
(6)輸出
算法A輸出身份(ID1,ID2,…,IDn) 所對應(yīng)消息 (m1,m2,…,mn) 的有效聚合簽名σ。當(dāng)且僅當(dāng)c1=0,cj=1, 2≤j≤n時(shí),算法B繼續(xù)運(yùn)行,否則,算法B輸出失敗并終止。由c1=0得,H1(ID1)=α1(bP)。 由cj=0得,H1(IDj)=αjP。 聚合簽名σ必須滿足
算法B查找n個(gè)元組 (mj,R,hj,Zj), 當(dāng)i≥2時(shí),Zj=(x+yj)Ppub+hjsID, 則
e(Zj,P)=e((x+yj)Ppub+hjsID,P)=
e(Ppub,xP)·e(Ppub,P)yj·e(hjQID,Ppub)=
e(Ppub,P)yj·e(R+hjQID,Ppub)=
Y(j)·e(R+hjQID,Ppub)
因此, (Y(j),R,Zj) 為身份IDj對消息mj的有效簽名。
算法B至少以概率ε′成功地解決CDH問題,算法B成功的3個(gè)條件為:E1:算法B不因?yàn)镾ign詢問而終止。E2:敵手A偽造了一個(gè)有效的簽名。E3:上述E2事件發(fā)生的同時(shí),c1=0,cj=1,2≤j≤n。cj為列表L1中包含身份IDj的元組中的值。
若上述事件均發(fā)生,則B獲得成功,相應(yīng)的概率記為Pr[E1∧E2∧E3]=Pr[E1]Pr[E2|E1]Pr[E3|E1∧E2]。
推論1 算法B不因?yàn)镾ign詢問而終止的概率Pr[E1]至少為(1-1/(qs+N))qs。
證明:假設(shè)敵手A對相同消息的詢問不超過兩次。歸納證明A進(jìn)行j次簽名詢問后,B不終止的概率至少為(1-1/(qs+N))j。 當(dāng)j=0時(shí),推論為真。IDj為A的第j次簽名詢問, (IDj,αj,βj,cj) 為列表L1中的元組。在A詢問之前,只有H1(IDj)取決于隨機(jī)的cj,H1(IDj)的分布是相同的。因此,簽名詢問導(dǎo)致B中止的概率至少為1/(qs+N)。 基于歸納假設(shè)和cj的獨(dú)立性,在簽名詢問后B不終止的概率至少為(1-1/(qs+N))j。 因此,B不因?yàn)锳至少qs次簽名詢問而中止的概率至少為(1-1/(qs+N))qs。
推論2 算法B不因?yàn)锳的詢問而中止,那么A輸出一個(gè)有效的聚合簽名的概率與真實(shí)攻擊是一致的。即Pr(E2|E1)≥ε。
證明:A的公鑰與密鑰生成算法產(chǎn)生公鑰具有相同的分布。因?yàn)槊恳粋€(gè)響應(yīng)在G1中都均勻獨(dú)立分布,所以對Hash詢問的響應(yīng)與真實(shí)攻擊一致。對于所有詢問的響應(yīng)都是有效的,因此A生成一個(gè)有效的簽名的概率至少為ε。即Pr(E2|E1)≥ε。
推論3 算法B在A輸出有效的偽造之后而不終止的概率至少為(1-1/(qs+N))N-1·1/(qs+N)。 即Pr[ε3|ε1∧ε2]≥(1-1/(qs+N))N-1·1/(qs+N)。
證明:算法B會(huì)中止,除非A生成偽造簽名且c1=0,cj=1,2≤j≤n。 Pr[c1=0]=1/(qs+N), Pr[ci=1]=1-1/(qs+N)。 對于所有的2≤j≤n,cj=1發(fā)生的概率至少 (1-1/(qs+N))j-1≥(1-1/(qs+N))N-1。
算法B運(yùn)行的時(shí)間為A運(yùn)行的時(shí)間加上回應(yīng) (qs+qh1+qh2)Hash詢問的時(shí)間,qs次簽名詢問的時(shí)間,以及A最終偽造簽名轉(zhuǎn)化為CDH問題的時(shí)間。因此,算法B總的運(yùn)行時(shí)間至少為t′≥t+CG1(qh1+qh2+2qs+N+2)。
車聯(lián)網(wǎng)中聚合簽名的實(shí)用性主要取決于安全、聚合簽名長度、聚合(批量)驗(yàn)證效率。而在本文第5小節(jié)驗(yàn)證了本方案可抵抗存在性偽造;聚合簽名的長度影響帶寬利用率。表1為本文方案與現(xiàn)有方案對于n條消息簽名所需的通信代價(jià)的對比,其中L表示長度單位。不難看出利用本方案可使車聯(lián)網(wǎng)中用戶對消息的最終簽名長度變短,效率較高,通信代價(jià)降低。
表1 通信代價(jià)對比
在保證安全性的前提下,計(jì)算開銷也是聚合簽名方案考慮的一個(gè)重點(diǎn)。如表2所示,給出了現(xiàn)有方案與本文方案在計(jì)算開銷上的對比。其中雙線性對為比較耗時(shí)的計(jì)算,表3為所運(yùn)用符號(hào)及個(gè)符號(hào)執(zhí)行一次所用時(shí)間,由于哈希函數(shù)運(yùn)算消耗時(shí)間較少,故忽略哈希運(yùn)算花費(fèi)時(shí)間。不難看出本文方案在計(jì)算效率相對較高。
表2 效率對比
隨著消息個(gè)數(shù)的增加,最終簽名的時(shí)間隨之增長,用戶可將離線階段生成的參數(shù)保存在本地,當(dāng)需要再次簽名時(shí),不需要再次計(jì)算具有雙線性對運(yùn)算的離線參數(shù),只需計(jì)算不耗時(shí)的乘法及指數(shù)運(yùn)算,極大提高了簽名的效率。
表3 符號(hào)定義
本文針對節(jié)點(diǎn)眾多、網(wǎng)絡(luò)拓?fù)渥兓斓能嚶?lián)網(wǎng)系統(tǒng)中數(shù)據(jù)完整性及認(rèn)證的問題提出了在線/離線聚合簽名方案,通過安全性及效率分析,本文所用簽名方案計(jì)算開銷較少,適用于開放的無線網(wǎng)絡(luò);車輛用戶或者RSU可以一次驗(yàn)證多個(gè)簽名消息,提高了驗(yàn)證效率;最終簽名長度變短,節(jié)省通信過程中的開銷。本方案在隨機(jī)預(yù)言機(jī)模型下,在自適應(yīng)選擇消息攻擊下可以安全的抵抗存在性偽造。隨著待簽名消息的增加,簽名長度不變。本文方案適用于公用車輛及RSU等不需隱私保護(hù)的實(shí)體,減輕密鑰管理負(fù)擔(dān),提高車聯(lián)網(wǎng)的認(rèn)證速度。在將來的工作中,還需對要求隱私保護(hù)的私有車輛的消息認(rèn)證進(jìn)行研究,保證個(gè)人車輛的匿名性,提高安全性。