呂柳迪,鄭 東,2,張應輝,2,3,閆 銘,蘇昊楠
(1.西安郵電大學 無線網絡安全技術國家工程實驗室,陜西 西安 710121;2.衛士通信息產業股份有限公司 衛士通摩石實驗室,北京 100070;3.中國密碼管理局 密碼科學技術國家重點實驗室,北京 100878)
根據短距離通信協議(dedicated short range communications,DSRC[1]),VANET[2]中每輛車每100 ms到300 ms會廣播交通安全信息,發送車輛駕駛相關信息給其它車輛,RSU可對其進行回應,因此在大量消息傳輸的車聯網中提高簽名效率及驗證效率受到了廣泛關注。文獻[3]提出了聚合簽名算法將來自n個用戶的n個不同消息的n個簽名聚合成單個短簽名;文獻[4]提出了在線/離線簽名方案,從預先計算的結果快速計算數字簽名,計算存儲成本降低;文獻[5,6]采用批量驗證的方法驗證交通流中產生的大量信息;文獻[7]提出基于身份的聚合簽名;文獻[8]提出了基于身份聚合簽名的完整域哈希,但認證時需要大量雙線對運算;文獻[9]中的無證書聚合簽名降低證書管理負擔,驗證時所消耗雙線對運算較多;文獻[10]所提出的方案易遭到惡意攻擊,不能達到所要求的安全性,簽名能夠偽造成功。
本文介紹了一個安全有效的基于身份的在線/離線聚合簽名方案,解決了證書管理吊銷等問題,并且將簽名分為在線和離線兩個階段,用戶可重用離線階段預計算的信息,減少了簽名的時間,降低了計算開銷以及通信開銷。允許將多個簽名聚合成一個簽名,RSU只需驗證一個簽名便可實現對眾多車載單元信息的認證,減輕了RSU的工作量,提高了驗證效率。方案中最終簽名長度變短,提高了傳輸效率。在自適應選擇消息攻擊下,能夠抵抗存在性偽造。
考慮到車聯網通信的實際應用要求,車載中斷在向路邊固定的基礎設施發送消息時,由于不可靠的網絡傳輸,用戶的數據可能被惡意攻擊者篡改,或者會有不法用戶試圖接入該網絡中。因此,我們主要工作在于如何安全地實現對車輛的認證,保證車載自組織網絡中用戶信息的安全需求。我們的系統模型如圖1所示。其中通信實體包括認證中心(trusted authority,TA)、可信服務器、部署在道路兩旁的固定基礎設施RSU、車載通信單元OBU。

圖1 車聯網系統模型
其中的通信方式包括車輛OBU之間的通信和車輛與路邊基礎設施RSU間的通信,車輛與RSU之間的通信遵從DSRC協議。車輛間的通信采用無線傳輸方式,TA與RSU之間通過安全的有線網絡進行連接。RSU與服務器和TA之間使用安全的傳輸協議,例如有線傳輸層安全協議(transport layer security,TLS)。
(1)TA是可信機構的,用于生成系統參數,密鑰管理。
(2)RSU將從OBU接受到的有效信息轉發給服務器,計算能力高于OBU,通信范圍大于OBU通信范圍。每一個RSU需要對從OBU接收到的簽名驗證其正確性。
(3)服務器對RSU收集的車輛工作信息進行分析并反饋給RSU,服務器可以幫助收集分析整個城市的交通密度,預測交通分布達到優化交通燈控制的目的。
(4)添加了OBU的車輛可與附近的車輛或RSU進行通信,每輛車都有其對應的公私鑰,所有的消息在發送給相鄰的RSU前需簽名。
本文設計的基于身份的在線/離線聚合數字簽名方案主要實現以下功能:
(1)使用在線/離線簽名技術,降低用戶計算開銷。
(2)簽名長度恒定,節省通信過程中的傳輸開銷。
(3)支持對來自不同用戶簽名消息的批量驗證,提高驗證效率。
基于身份的在線/離線聚合數字簽名應該在自適應選擇消息攻擊下抵抗存在性偽造。下面通過敵手A和挑戰者C之間的游戲來定義抗存在性偽造的安全模型。
(1)系統初始化
挑戰者C運行系統初始化算法得到系統公開參數Params,并發送給敵手A。
(2)詢問階段
Hash詢問:對于任何輸入,挑戰者計算Hash值,返回給敵手A;Extract詢問:對于身份為IDj的敵手,挑戰者返回相對應的私鑰skIDj;Sign詢問:對于任何身份為IDj的敵手的待簽名消息mj,挑戰者運行在線/離線簽名算法生成簽名值σj,并返回給A。
(3)響應
在經過多項式次數詢問后,敵手A輸出身份 (ID1,ID2,…,IDn) 對n個消息 (m1,m2,…,mn) 的聚合簽名σ。如果A沒有進行私鑰查詢,并且 (ID1,m1) 沒有進行Sign查詢,σ為一個有效的簽名,則敵手A贏得游戲。
定義1 如果敵手A運行時間最多為t,以不可忽略的優勢ε贏得了游戲,且敵手A進行Hash詢問的次數最多為qh次,Extract詢問的次數最多為qe次,Sign詢問的次數最多為qs次。則敵手A,以 (t,qh,qe,qs)-breaks基于身份的在線/離線聚合數字簽名系統S。如果沒有敵手可以 (t,qh,qe,qs)-breaks簽名系統S,則本方案在自適應選擇消息攻擊下抵抗存在性偽造。
設k為安全參數,q為k比特的大素數,G1是階為q的加法循環群,G2是階為q的乘法循環群。假設G1,G2上的離散對數問題是難解的。G1到G2的雙線性映射e:G1×G1→G2,滿足下面的性質:

e(aP,bQ)=e(P,Q)ab
(2)非退化性:存在P,Q∈G1, 使得e(P,Q)≠1G2。 因此當P為G1的生成元時,e(P,P)為G2的生成元。
(3)可計算性:對于所有的P,Q∈G1, 存在一個有效的算法計算e(P,Q)。
令G是素數階為q的阿貝爾群,并且P是G的生成元。在加法群(G,+)中描述以下3個數學問題。



CDHP假設:在多項式時間內沒有運行的算法,這可以解決具有不可忽略概率的CDHP問題。
(t′,ε′)-CDH群:如果存在運行時間至多為t′的概率算法A,該算法可以以概率為ε′計算出CDH問題,則稱(t′,ε′)-CDH問題在群G上成立。
本方案實現了對多個簽名消息進行批量驗證,并且簽名的長度變得很短,這樣的聚合簽名在車聯網的應用可以減少通信開銷。
(1)系統初始化算法
TA為可信中心,可驗證車輛的身份信息,并負責生成系統參數、系統公私鑰及車輛節點的公私鑰。在網絡部署之前,TA為每一個RSU和OBU設置系統參數,如下所示:
1)TA選擇一個安全參數k∈Z,生成一個素數q,群G1,G2的階都為q,并且有雙線性對e:G1×G1→G2,P為G1的生成元。

(2)密鑰生成算法
車輛節點的身份標識為IDj∈{0,1}*,TA為每一個IDj計算公鑰QIDj=H1(IDj), 私鑰為SIDj=sQIDj, 通過安全的信道將私鑰傳給相應的車輛節點。
(3)簽名算法
當車輛在路上行駛他們定期地廣播可能影響交通控制中心的決策和交通分布優化的交通相關信息。為了確保消息的完整性,車輛發出的每一條信息都應被簽名并且驗證每一條接收的信息,簽名階段分為如下步驟:
1)離線簽名
每一個車輛節點Vj能源儲備較充足,因此可以執行計算開銷較大的模冪運算以及雙線性對運算。當簽名消息待定時,車輛Vj執行離線簽名進行簽名的預計,并將計算結果保存在本地。車輛可在下一次簽名時跳過此步驟直接利用結果進行在線簽名,這樣可以減少簽名的時延。
身份為IDj的車輛Vj生成待發送的消息mj,車輛Vj計算:Yi=e(Ppub,Q)2i,i=0,1,…,l,l=|q|-1。
2)在線簽名

(4)聚合算法
對于車輛用戶集合,車輛節點Vj的身份為IDj,每一個車輛節點相對應的消息簽名為
{σ1=(Y(1),R,Z1),σ2=(Y(2),R,Z2),…,σn=(Y(n),R,Zn)}
聚合者(任何一個車載通信單元OBU都可以充當聚合者)負責將各個簽名聚合起來,形成一個聚合簽名,并計算

最終對消息mj,1≤j≤n的聚合簽名為σ(Y,R,Z)。
(5)批量驗證
RSU接受到來自車輛發布的交通相關信息,需驗證簽名確保相應的車輛不冒充任何其它合法車輛或者傳播偽造的信息。
RSU收到來自車輛對于消息m1,m2,…,mn的簽名σ,RSU計算hj=H2(mj,R,Y(j)), 1≤j≤n。
驗證下面等式是否成立
(1)
如果等式成立,接受簽名消息,并將消息廣播出去,否則拒絕。
簽名正確性:是對消息mj,j=1,2,…,n和身份IDj,j=1,2,…,n的有效簽名,則有以下運算
e(Z,P)=
等式(1)成立,當且僅當
Y(j)=e(Ppub,P)yj,j=1,2,…,n
對于任何1≤j≤n,有

因此,驗證成功。
定理1 假設G1,G2都是階為q的(t′,ε′)-CDH群,e(G1,G1)→G2為一個雙線性映射。在隨機預言機模型下,本文提出的方案是(t,ε,qh1,qh2qe,qs,N)-抵抗存在性偽造的,其中t和ε滿足
ε≥e(qs+N)ε′
t≤t′-CG1(qh1+qh2+2qs+N+2)
式中:e為自然對數的底,CG1是群G1中求冪和求逆運算所需要的時間。
證明:假設敵手A偽造了一個有效的簽名。構造一個算法B模擬挑戰者與敵手A交互,則t′次多項式時間算法B可以至少以概率ε′解決CDH問題。算法B計算出CDH問題的解abP∈G1。
(1)系統初始化:算法B計算Ppub=aP作為公鑰,將系統參數發送給敵手A。
(2)H1-Hash詢問:為了響應H1的詢問,算法B維護列表 (IDj,αj,βj,cj), 記為L1。敵手A對身份IDj進行H1詢問時,算法B做出如下響應:
1)如果身份IDj存在于列表L1中,則算法B返回H1(IDj)=βj。 否則,算法B隨機選擇cj∈{0,1}, 使Pr[cj=0]=1/(qe+N)。

3)算法B將元組 (IDj,αj,βj,cj) 添加到列表L1中,并將H1(IDj)=βj發送給A。
(3)H2-Hash詢問:為了響應H2的詢問,算法B維護列表 (mj,R,hj,Y(j)), 記為L2。敵手對mj和Y(j)進行H2詢問時,算法B做出如下響應:
1)如果 (mj,R,Y(j))存在于列表L2中,則算法B返回hj=(mj,R,Y(j))。

(4)Extract詢問
敵手詢問IDi的私鑰時,算法B做如下響應:
1)算法B查詢列表L1中元組(IDj,αj,βj,cj)。 若cj=0,算法B輸出失敗并終止。
2)若cj=1,算法B計算sIDj=αjPpub=a(αjP)并將私鑰sIDj發送給敵手A。
(5)Sign詢問
敵手詢問身份為IDj對應消息mj的簽名時,算法B做出如下響應:
1)算法B查詢列表L1中的元組 (IDj,αj,βj,cj)。 如果cj=0,算法B輸出失敗并終止。

3)算法B計算Zj=(x+yj)Ppub+hjsIDj, 將簽名σj=(Y(j),R,Zj) 發送給敵手A。
(6)輸出
算法A輸出身份(ID1,ID2,…,IDn) 所對應消息 (m1,m2,…,mn) 的有效聚合簽名σ。當且僅當c1=0,cj=1, 2≤j≤n時,算法B繼續運行,否則,算法B輸出失敗并終止。由c1=0得,H1(ID1)=α1(bP)。 由cj=0得,H1(IDj)=αjP。 聚合簽名σ必須滿足
算法B查找n個元組 (mj,R,hj,Zj), 當i≥2時,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個條件為:E1:算法B不因為Sign詢問而終止。E2:敵手A偽造了一個有效的簽名。E3:上述E2事件發生的同時,c1=0,cj=1,2≤j≤n。cj為列表L1中包含身份IDj的元組中的值。
若上述事件均發生,則B獲得成功,相應的概率記為Pr[E1∧E2∧E3]=Pr[E1]Pr[E2|E1]Pr[E3|E1∧E2]。
推論1 算法B不因為Sign詢問而終止的概率Pr[E1]至少為(1-1/(qs+N))qs。
證明:假設敵手A對相同消息的詢問不超過兩次。歸納證明A進行j次簽名詢問后,B不終止的概率至少為(1-1/(qs+N))j。 當j=0時,推論為真。IDj為A的第j次簽名詢問, (IDj,αj,βj,cj) 為列表L1中的元組。在A詢問之前,只有H1(IDj)取決于隨機的cj,H1(IDj)的分布是相同的。因此,簽名詢問導致B中止的概率至少為1/(qs+N)。 基于歸納假設和cj的獨立性,在簽名詢問后B不終止的概率至少為(1-1/(qs+N))j。 因此,B不因為A至少qs次簽名詢問而中止的概率至少為(1-1/(qs+N))qs。
推論2 算法B不因為A的詢問而中止,那么A輸出一個有效的聚合簽名的概率與真實攻擊是一致的。即Pr(E2|E1)≥ε。
證明:A的公鑰與密鑰生成算法產生公鑰具有相同的分布。因為每一個響應在G1中都均勻獨立分布,所以對Hash詢問的響應與真實攻擊一致。對于所有詢問的響應都是有效的,因此A生成一個有效的簽名的概率至少為ε。即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會中止,除非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發生的概率至少 (1-1/(qs+N))j-1≥(1-1/(qs+N))N-1。

算法B運行的時間為A運行的時間加上回應 (qs+qh1+qh2)Hash詢問的時間,qs次簽名詢問的時間,以及A最終偽造簽名轉化為CDH問題的時間。因此,算法B總的運行時間至少為t′≥t+CG1(qh1+qh2+2qs+N+2)。
車聯網中聚合簽名的實用性主要取決于安全、聚合簽名長度、聚合(批量)驗證效率。而在本文第5小節驗證了本方案可抵抗存在性偽造;聚合簽名的長度影響帶寬利用率。表1為本文方案與現有方案對于n條消息簽名所需的通信代價的對比,其中L表示長度單位。不難看出利用本方案可使車聯網中用戶對消息的最終簽名長度變短,效率較高,通信代價降低。

表1 通信代價對比
在保證安全性的前提下,計算開銷也是聚合簽名方案考慮的一個重點。如表2所示,給出了現有方案與本文方案在計算開銷上的對比。其中雙線性對為比較耗時的計算,表3為所運用符號及個符號執行一次所用時間,由于哈希函數運算消耗時間較少,故忽略哈希運算花費時間。不難看出本文方案在計算效率相對較高。

表2 效率對比
隨著消息個數的增加,最終簽名的時間隨之增長,用戶可將離線階段生成的參數保存在本地,當需要再次簽名時,不需要再次計算具有雙線性對運算的離線參數,只需計算不耗時的乘法及指數運算,極大提高了簽名的效率。

表3 符號定義
本文針對節點眾多、網絡拓撲變化快的車聯網系統中數據完整性及認證的問題提出了在線/離線聚合簽名方案,通過安全性及效率分析,本文所用簽名方案計算開銷較少,適用于開放的無線網絡;車輛用戶或者RSU可以一次驗證多個簽名消息,提高了驗證效率;最終簽名長度變短,節省通信過程中的開銷。本方案在隨機預言機模型下,在自適應選擇消息攻擊下可以安全的抵抗存在性偽造。隨著待簽名消息的增加,簽名長度不變。本文方案適用于公用車輛及RSU等不需隱私保護的實體,減輕密鑰管理負擔,提高車聯網的認證速度。在將來的工作中,還需對要求隱私保護的私有車輛的消息認證進行研究,保證個人車輛的匿名性,提高安全性。