国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于周期耦合處理的CAN 總線(xiàn)數(shù)據(jù)組合加密方法

2023-02-20 13:36秦武韜王鵬李玉峰
通信學(xué)報(bào) 2023年1期
關(guān)鍵詞:加解密密文離線(xiàn)

秦武韜,王鵬,李玉峰,2

(1.網(wǎng)絡(luò)通信與安全紫金山實(shí)驗(yàn)室,江蘇 南京 211111;2.上海大學(xué)計(jì)算機(jī)工程與科學(xué)學(xué)院,上海 200444)

0 引言

隨著新一輪科技革命的蓬勃發(fā)展,網(wǎng)絡(luò)通信技術(shù)、深度學(xué)習(xí)技術(shù)、計(jì)算機(jī)技術(shù)等不斷進(jìn)步,并與傳統(tǒng)汽車(chē)技術(shù)相結(jié)合,使智能網(wǎng)聯(lián)汽車(chē)快速發(fā)展,大量網(wǎng)聯(lián)汽車(chē)逐漸步入人們的日常生活中[1-2]。智能網(wǎng)聯(lián)汽車(chē)在帶來(lái)巨大便利的同時(shí),導(dǎo)致針對(duì)汽車(chē)的各種攻擊入口被打開(kāi),用戶(hù)、車(chē)輛、環(huán)境等海量隱私或敏感信息存在被非法竊取的巨大風(fēng)險(xiǎn),不僅帶來(lái)了巨大的網(wǎng)絡(luò)安全問(wèn)題,也使傳統(tǒng)的功能安全問(wèn)題與網(wǎng)絡(luò)安全問(wèn)題相互交織,引發(fā)復(fù)雜的廣義功能安全問(wèn)題[3-5]。

車(chē)內(nèi)通信安全是汽車(chē)廣義安全的重要組成部分,一旦通信安全受到威脅,輕則導(dǎo)致隱私泄露、財(cái)產(chǎn)損失,重則導(dǎo)致汽車(chē)故障、車(chē)輛惡意被控,引發(fā)行車(chē)安全及其他惡性事件[6]。在車(chē)內(nèi)通信網(wǎng)絡(luò)中,控制器局域網(wǎng)絡(luò)(CAN)總線(xiàn)憑借簡(jiǎn)單、輕量化、可靠性好、布線(xiàn)靈活、成本低等優(yōu)勢(shì),一直是車(chē)內(nèi)通信網(wǎng)絡(luò)的主力軍,連接著動(dòng)力域、車(chē)身域等車(chē)內(nèi)各個(gè)域(如圖1 所示),承擔(dān)著絕大多數(shù)的通信任務(wù),特別是包含位置、速度、轉(zhuǎn)向、發(fā)動(dòng)機(jī)轉(zhuǎn)速等有關(guān)行車(chē)安全的信息[7]。

圖1 車(chē)內(nèi)CAN 架構(gòu)

然而,基于CAN 總線(xiàn)的通信是一種廣播形式的網(wǎng)絡(luò)通信,出于輕量化和快速響應(yīng)的考慮,CAN總線(xiàn)在設(shè)計(jì)階段沒(méi)有應(yīng)用加密技術(shù),因此通過(guò)一些手段可以輕易地獲取總線(xiàn)上傳輸?shù)恼鎸?shí)信息,不僅導(dǎo)致車(chē)內(nèi)各類(lèi)數(shù)據(jù)極易泄露,而且攻擊者可以利用這些信息對(duì)網(wǎng)絡(luò)上的其他單元進(jìn)行攻擊,嚴(yán)重危害車(chē)輛安全[8]。因此,在智能網(wǎng)聯(lián)化的今天,必須對(duì)CAN 傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理。

智能網(wǎng)聯(lián)汽車(chē)的信息傳輸和車(chē)輛的安全控制要求車(chē)內(nèi)數(shù)據(jù)傳輸必須具有低時(shí)延的特點(diǎn),而CAN總線(xiàn)本身的數(shù)據(jù)傳輸能力相對(duì)較弱,且具有固定的數(shù)據(jù)格式,每個(gè)標(biāo)準(zhǔn)幀所能傳輸?shù)臄?shù)據(jù)固定為8 字節(jié)(64 位),這就要求在對(duì)CAN 數(shù)據(jù)進(jìn)行加密時(shí)需采用快速、輕量化的分組加密方法,加密前后數(shù)據(jù)長(zhǎng)度不變,不增加CAN 總線(xiàn)的傳輸負(fù)擔(dān),不改變?cè)袛?shù)據(jù)的傳輸節(jié)奏和格式。

此外,CAN 總線(xiàn)的廣播形式使一個(gè)車(chē)載單元(OBU,on board unit)被攻破俘獲,則所有經(jīng)CAN總線(xiàn)傳輸?shù)臄?shù)據(jù)均會(huì)泄露。如果簡(jiǎn)單采用同樣的分組對(duì)稱(chēng)密碼進(jìn)行加密,將使所有經(jīng)CAN 總線(xiàn)傳輸?shù)臄?shù)據(jù)面臨“全軍覆沒(méi)”的巨大風(fēng)險(xiǎn)。如果各OBU 兩兩之間分配密鑰,盡管可以確保數(shù)據(jù)傳輸?shù)谋C苄?,但?huì)帶來(lái)大量的密鑰,如果同一數(shù)據(jù)需要發(fā)送至n個(gè)OBU,則需要重復(fù)加密、傳輸n次,帶來(lái)了極大的計(jì)算量和沉重的總線(xiàn)傳輸負(fù)擔(dān),這在當(dāng)前CAN 總線(xiàn)傳輸負(fù)載率已經(jīng)較高的情況下并不現(xiàn)實(shí),將顯著增加傳輸時(shí)延,危害行車(chē)安全。

因此,需要設(shè)計(jì)一種輕量化、低時(shí)延的加密策略,在不顯著增加計(jì)算量、數(shù)據(jù)傳輸量的情況下確保CAN 總線(xiàn)傳輸?shù)拿芪膬H能被數(shù)據(jù)發(fā)送的目標(biāo)單元解密,即同時(shí)滿(mǎn)足以下3 個(gè)特點(diǎn)。1) 輕量化、低時(shí)延,確保高效加解密;2) 報(bào)文數(shù)據(jù)64 bit 分組加密,不改變?cè)袀鬏敼?jié)奏和格式;3) 針對(duì)性地加解密,非目標(biāo)數(shù)據(jù)用戶(hù)無(wú)法得到明文信息。

在現(xiàn)有的CAN 數(shù)據(jù)加密方法中,1977 年由美國(guó)政府頒布的數(shù)據(jù)加密標(biāo)準(zhǔn)(DES,data encryption standard)具有典型代表性[9],DES 為64 bit 分組對(duì)稱(chēng)加密,分組位數(shù)與CAN 標(biāo)準(zhǔn)幀中的數(shù)據(jù)長(zhǎng)度(如圖2 所示)一致,應(yīng)用簡(jiǎn)單方便、適用性強(qiáng),但隨著現(xiàn)代計(jì)算能力的提升存在著暴力破解的風(fēng)險(xiǎn);而基于DES 的改進(jìn)算法3DES 通過(guò)多次加解密運(yùn)算提升了安全性[10],但加密的計(jì)算量大幅增加,加密時(shí)間是DES 算法的3 倍多。因此,美國(guó)政府頒布了高級(jí)加密標(biāo)準(zhǔn)(AES,advanced encryption standard)用于取代DES[11-12],AES 算法由于其出色的安全性和較小的計(jì)算量,已經(jīng)成為主流的對(duì)稱(chēng)加密算法,但其要求明文長(zhǎng)度至少達(dá)到128 bit,超過(guò)了CAN 數(shù)據(jù)幀的64 bit,無(wú)法直接應(yīng)用。一種典型解決方法是利用64 bit 空白報(bào)文補(bǔ)位至128 bit,再利用AES進(jìn)行加密處理,生成128 bit 的密文后連續(xù)發(fā)送兩幀,接收方則連續(xù)接收兩幀后再進(jìn)行解密,但該方法明顯存在著加解密計(jì)算量和總線(xiàn)數(shù)據(jù)傳輸量翻倍的問(wèn)題[13];另一種方法則是通過(guò)累積兩幀數(shù)據(jù)幀補(bǔ)位至128 bit,再利用AES 進(jìn)行加解密,但該方法的奇數(shù)拍報(bào)文必須等待偶數(shù)拍報(bào)文配對(duì)后才能發(fā)送,增加了奇數(shù)拍報(bào)文的等待時(shí)間,帶來(lái)了時(shí)延的不確定性。

圖2 標(biāo)準(zhǔn)幀數(shù)據(jù)格式

此外,現(xiàn)有的CAN 數(shù)據(jù)加密算法直接對(duì)明文數(shù)據(jù)進(jìn)行處理,在明文出現(xiàn)之前不進(jìn)行預(yù)加解密計(jì)算,所有計(jì)算累積到加密或解密請(qǐng)求出現(xiàn)后,未能充分利用離線(xiàn)段的計(jì)算能力,增大了在線(xiàn)段的運(yùn)算負(fù)擔(dān)和加解密時(shí)延。同時(shí),現(xiàn)有的CAN 總線(xiàn)數(shù)據(jù)加密方法仍采用簡(jiǎn)單的對(duì)稱(chēng)密碼設(shè)計(jì)思路,各OBU通過(guò)預(yù)設(shè)相同的密碼來(lái)實(shí)現(xiàn)數(shù)據(jù)的加解密,增加了數(shù)據(jù)泄露的風(fēng)險(xiǎn),無(wú)法滿(mǎn)足CAN 總線(xiàn)傳輸中針對(duì)性加解密的需求。

因此,本文面向CAN 報(bào)文加解密快速響應(yīng)需求,利用CAN 總線(xiàn)周期性傳輸特點(diǎn),提出一種基于在線(xiàn)-離線(xiàn)處理的組合加密方法,如圖3 所示。首先,利用OBU 的身份屬性制定訪(fǎng)問(wèn)策略對(duì)分組密碼進(jìn)行加密、分發(fā),確保僅有目標(biāo)OBU 可以完成密碼解密,獲取分組密碼。然后,對(duì)CAN 報(bào)文加解密方法進(jìn)行在線(xiàn)離線(xiàn)處理改造,其中,在離線(xiàn)階段利用AES 算法動(dòng)態(tài)生成8 字節(jié)會(huì)話(huà)密鑰,在線(xiàn)段則利用會(huì)話(huà)密鑰通過(guò)異或運(yùn)算迅速響應(yīng)數(shù)據(jù)的加解密需求,實(shí)現(xiàn)高速、輕量化、64 位分組和針對(duì)性加解密,同時(shí)滿(mǎn)足智能網(wǎng)聯(lián)汽車(chē)CAN 報(bào)文加解密的3 個(gè)需求。

圖3 與周期耦合的在線(xiàn)離線(xiàn)加解密模式

1 AES 算法

AES 加解密流程如圖4 所示。從圖4 中可以看出,其核心運(yùn)算主要包括輪密鑰加、字節(jié)代換(逆字節(jié)代換)、密鑰擴(kuò)展、行移位(逆行移位)、列混合(逆列混合)5 種,具體方法介紹如下。

圖4 AES 加解密流程

1) 輪密鑰加。如圖5 所示,將數(shù)據(jù)逐個(gè)與本輪相應(yīng)密鑰進(jìn)行異或運(yùn)算。其中,m為待運(yùn)算數(shù)據(jù),k為本輪密鑰,c為異或運(yùn)算結(jié)果。

圖5 輪密鑰加

2) 字節(jié)代換(逆字節(jié)代換)。把輪密鑰加后產(chǎn)生的每一個(gè)字節(jié)用十六進(jìn)制表示,然后以十六進(jìn)制的第一個(gè)數(shù)字為行,第二個(gè)數(shù)字為列,在S 盒[14]表中查找對(duì)應(yīng)的數(shù)字代替原先的數(shù)字,完成字節(jié)代換。逆字節(jié)代換則從逆S 盒中查找元素替代。

3) 密鑰擴(kuò)展?;?6 字節(jié)原始密鑰,按順序以每4 字節(jié)為一組,按位進(jìn)行依次連接,獲得第一輪密鑰W[0]、W[1]、W[2]、W[3]。對(duì)于后續(xù)輪密鑰,采用如圖6 所示的方法進(jìn)行計(jì)算,即

圖6 密鑰擴(kuò)展

其中,T (·)為包括字循環(huán)移位、字節(jié)替換和輪常量異或運(yùn)算的非線(xiàn)性函數(shù)[11]。

4) 行移位(逆行移位)。把字節(jié)代換得到的矩陣逐行進(jìn)行左環(huán)移,逆行移位則與行移位相反。

5) 列混合(逆列混合)。利用給定矩陣對(duì)上一步獲得的矩陣進(jìn)行變換,其中,列混合為

2 在線(xiàn)離線(xiàn)處理的組合加密方案

針對(duì)車(chē)內(nèi)CAN 網(wǎng)絡(luò)數(shù)據(jù)加密64 位分組、輕量化、低時(shí)延、針對(duì)性解密的需求,本文提出一種與CAN 總線(xiàn)通信周期耦合的組合加密方案,具體流程如圖7 所示。

圖7 在線(xiàn)離線(xiàn)處理的組合加密流程

組合加密方案由兩部分組成,一部分為基于屬性的分組密碼加密方法,確保用于CAN 報(bào)文加密的分組密碼僅由目標(biāo)數(shù)據(jù)用戶(hù)獲得,防止加密信息擴(kuò)散,避免某一單元被攻破后全車(chē)信息泄露。

另一部分為基于分組加密方法的CAN 報(bào)文數(shù)據(jù)加密,該方法利用AES 算法動(dòng)態(tài)生成8 字節(jié)會(huì)話(huà)密鑰,實(shí)現(xiàn)分組對(duì)稱(chēng)加密,密文與明文長(zhǎng)度不變,實(shí)現(xiàn)了數(shù)據(jù)傳輸節(jié)奏和格式的穩(wěn)定。

此外,在加解密過(guò)程中,使用了在線(xiàn)離線(xiàn)處理技術(shù),將計(jì)算量大、不依賴(lài)實(shí)時(shí)報(bào)文信息的計(jì)算放入通信間歇的離線(xiàn)段進(jìn)行,可大幅度降低計(jì)算時(shí)延。本文方案具體內(nèi)容介紹如下。

2.1 基于身份屬性的分組密碼加密

該方法首先根據(jù)確定的報(bào)文收發(fā)OBU 確定收發(fā)組,在本收發(fā)組第一幀CAN 報(bào)文發(fā)送前,利用基于身份屬性加密方案對(duì)分組密碼mkey進(jìn)行加密,確保僅有目標(biāo)數(shù)據(jù)用戶(hù)可完成解密獲得分組密碼mkey,確保后續(xù)報(bào)文的安全。具體步驟介紹如下。

1) Ex.SysAtt():收集汽車(chē)各OBU 的屬性,包括所屬域、單元類(lèi)型、種類(lèi)、編號(hào)等,如自動(dòng)駕駛域、傳感器、相機(jī)、1,確定系統(tǒng)屬性集U= {u1,u2,…,uu}。

2) Ex.Setup(τ,U):進(jìn)行設(shè)置,輸入安全選取的隱含安全參數(shù)τ與各OBU 單元屬性集合U,計(jì)算公鑰PK 和主私鑰MSK

其中,g為G1的生成元,G1為雙線(xiàn)性映射概念下的循環(huán)群,其元素包括γ1,γ2,…,γ u,相關(guān)概念可參考文獻(xiàn)[15],隨機(jī)參數(shù)a,b∈ Zp。

3) Ex.KeyGen(MSK,PK,S):根據(jù)各OBU 屬性,利用主私鑰MSK 和公鑰PK 生成相應(yīng)私鑰,預(yù)設(shè)至各組件中,對(duì)于第k個(gè)組件,其私鑰為

其中,1,2,…,s表示OBU 屬性集S中的屬性標(biāo)號(hào),L表示私鑰的組成參數(shù),用于后續(xù)解密,?(i)表示第k個(gè)OBU 的屬性到系統(tǒng)屬性集U中元素的映射,隨機(jī)參數(shù)t∈Zp。

以上三步均在系統(tǒng)聯(lián)網(wǎng)實(shí)驗(yàn)前完成,確保各私鑰安全裝訂。

4) Offline.EncryptKey(PK):在離線(xiàn)段,數(shù)據(jù)發(fā)送OBU 選擇隨機(jī)數(shù)r∈Zp,利用公鑰PK 計(jì)算中間密文ICkey。

5) Online.EncryptKey(PK,ICkey,mkey,(M,ρ),v):此時(shí)已經(jīng)確定密鑰明文mkey和訪(fǎng)問(wèn)控制策略(M,ρ),利用中間結(jié)果完成加密,輸出密文Ckey。

2.2 基于在線(xiàn)離線(xiàn)AES 的CAN 報(bào)文分組加密

針對(duì)傳統(tǒng)分組對(duì)稱(chēng)加密方法加密安全性不足、最小加密長(zhǎng)度與CAN 數(shù)據(jù)長(zhǎng)度不匹配、缺乏在線(xiàn)離線(xiàn)處理導(dǎo)致在線(xiàn)段計(jì)算負(fù)擔(dān)過(guò)重等問(wèn)題,本節(jié)給出一種基于在線(xiàn)離線(xiàn)AES(OOAES,online-offline AES)的CAN 報(bào)文分組加密方法,具體流程如圖8所示。該方法在離線(xiàn)階段利用128 位AES 分組密碼對(duì)由計(jì)數(shù)器和上一幀明文信息構(gòu)成的配對(duì)信息進(jìn)行預(yù)加密,通過(guò)截取8 字節(jié)密文生成動(dòng)態(tài)會(huì)話(huà)密鑰,等待加密請(qǐng)求;在線(xiàn)段則利用動(dòng)態(tài)會(huì)話(huà)密鑰通過(guò)異或運(yùn)算對(duì)8 字節(jié)的CAN 數(shù)據(jù)進(jìn)行加密,生成8 字節(jié)密文通過(guò)CAN 網(wǎng)絡(luò)進(jìn)行傳輸。

圖8 加解密處理流程

圖8 中,mkey是長(zhǎng)度為16 字節(jié)的AES 分組密碼,由數(shù)據(jù)加密方自定義;配對(duì)信息是長(zhǎng)度為16 字節(jié)的明文信息,由8 字節(jié)的循環(huán)計(jì)數(shù)器和上一數(shù)據(jù)幀CAN 數(shù)據(jù)的明文消息構(gòu)成,對(duì)于初始幀則采用事先約定的消息,如{00 00 00 00 00 00 00 00}。

利用AES對(duì)16字節(jié)配對(duì)信息進(jìn)行加密處理后,獲得16 字節(jié)長(zhǎng)度的AES 密文。在CAN 標(biāo)準(zhǔn)數(shù)據(jù)幀中,數(shù)據(jù)長(zhǎng)度為8 字節(jié),因此可從16 字節(jié)的密文中截取8 字節(jié)構(gòu)成動(dòng)態(tài)會(huì)話(huà)密鑰G,利用8 字節(jié)的會(huì)話(huà)密鑰G與CAN 明文進(jìn)行異或加密運(yùn)算獲得8 字節(jié)的CAN 密文進(jìn)行傳輸。解密流程與加密流程相似,區(qū)別在于解密流程利用動(dòng)態(tài)會(huì)話(huà)密鑰與經(jīng)CAN 總線(xiàn)傳輸?shù)拿芪倪M(jìn)行異或解密運(yùn)算,獲得明文完成解密。

在CAN 報(bào)文的加解密過(guò)程中,充分設(shè)計(jì)了在線(xiàn)離線(xiàn)的處理方法。對(duì)于加密過(guò)程,系統(tǒng)啟動(dòng)后,首先在離線(xiàn)階段完成預(yù)加密計(jì)算,獲得加密會(huì)話(huà)密鑰G;當(dāng)CAN 明文生成并觸發(fā)加密請(qǐng)求時(shí),進(jìn)入在線(xiàn)段,此時(shí)利用G對(duì)明文進(jìn)行快速加密,生成密文數(shù)據(jù)并發(fā)送;加密過(guò)程隨后進(jìn)入離線(xiàn)階段,更新配對(duì)信息并進(jìn)行預(yù)加密,生成新的會(huì)話(huà)密鑰等待CAN 報(bào)文數(shù)據(jù)。解密過(guò)程與加密過(guò)程類(lèi)似,系統(tǒng)啟動(dòng)后,首先在離線(xiàn)階段完成預(yù)解密計(jì)算,獲得解密會(huì)話(huà)密鑰G;當(dāng)接收到CAN密文數(shù)據(jù)時(shí),進(jìn)入在線(xiàn)段,運(yùn)行異或運(yùn)算恢復(fù)明文數(shù)據(jù);完成解密后進(jìn)入離線(xiàn)階段,更新配對(duì)信息進(jìn)行預(yù)解密,生成新的解密會(huì)話(huà)密鑰等待CAN密文數(shù)據(jù)。

通過(guò)在線(xiàn)-離線(xiàn)加解密處理方法的運(yùn)用,顯著減少了在線(xiàn)段的運(yùn)算量,節(jié)約了運(yùn)算時(shí)間,將巨大的預(yù)加密計(jì)算工作前置到了計(jì)算資源相對(duì)空閑的離線(xiàn)階段,確保了在線(xiàn)段能快速響應(yīng)加密和解密請(qǐng)求,大幅降低了加解密帶來(lái)的時(shí)延。

3 實(shí)驗(yàn)仿真分析

3.1 安全通信驗(yàn)證

為了驗(yàn)證加解密的正確性,生成1 000 幀描述汽車(chē)速度變化的CAN 報(bào)文,對(duì)比數(shù)據(jù)非加密傳輸和使用本文提出的CAN 報(bào)文加密方法進(jìn)行加密傳輸?shù)慕Y(jié)果,分別如圖9 和圖10 所示。

圖9 非加密網(wǎng)絡(luò)數(shù)據(jù)

圖10 加密網(wǎng)絡(luò)數(shù)據(jù)

從圖9 和圖10 中可以看出,對(duì)于未采用加密處理的CAN 報(bào)文傳輸方法,可以輕易從網(wǎng)絡(luò)端竊取汽車(chē)真實(shí)的速度數(shù)據(jù),不具備傳輸?shù)陌踩?;而采用加密處理后的?shù)據(jù)呈現(xiàn)出類(lèi)似于高斯噪聲的不規(guī)則變化,趨勢(shì)、結(jié)果與真實(shí)數(shù)據(jù)明顯不同。接收端獲取的結(jié)果與發(fā)送端一致,證明本文所提加密方法可以有效準(zhǔn)確地對(duì)CAN 數(shù)據(jù)進(jìn)行加解密,確保了CAN 網(wǎng)絡(luò)傳輸數(shù)據(jù)的安全性。

3.2 雪崩測(cè)試

雪崩效應(yīng)是指明文或密鑰發(fā)生微小變化時(shí),密文會(huì)出現(xiàn)不可區(qū)分的改變,理想情況是每個(gè)二進(jìn)制位有50%的概率發(fā)生翻轉(zhuǎn)。本節(jié)將分別進(jìn)行密鑰雪崩效應(yīng)測(cè)試和密文雪崩效應(yīng)測(cè)試,其中,密鑰雪崩效應(yīng)測(cè)試中將128 位密鑰的最后一位翻轉(zhuǎn),觀測(cè)密鑰翻轉(zhuǎn)前后1 000 幀CAN 密文二進(jìn)制位的翻轉(zhuǎn)概率;密文雪崩效應(yīng)測(cè)試中將CAN 報(bào)文中速度數(shù)據(jù)的最后一位翻轉(zhuǎn),觀測(cè)翻轉(zhuǎn)前后1 000 幀密文的翻轉(zhuǎn)概率。圖11 給出了1 000 幀報(bào)文的雪崩率曲線(xiàn),圖12 給出了密鑰雪崩率和密文雪崩率統(tǒng)計(jì),表1 給出了雪崩效應(yīng)特性的測(cè)試統(tǒng)計(jì)結(jié)果。圖12 中,橫坐標(biāo)表示組別,組1為密鑰調(diào)整帶來(lái)的雪崩率,稱(chēng)為“密鑰-雪崩率”,組2 為明文調(diào)整帶來(lái)的雪崩率,稱(chēng)為“明文-雪崩率”。從圖12 中可以看出,本文方法具有優(yōu)異的雪崩特性效應(yīng),密文二進(jìn)制翻轉(zhuǎn)概率約為50%,達(dá)到了某一位微小的輸入變化使輸出發(fā)生不可區(qū)分改變的效果。

圖11 1 000 幀報(bào)文雪崩率

圖12 密鑰雪崩率和密文雪崩率統(tǒng)計(jì)

表1 雪崩效應(yīng)特性測(cè)試結(jié)果

3.3 加解密耗時(shí)分析

基于3.1 節(jié)生成的1 000 幀CAN 報(bào)文數(shù)據(jù),分別利用DES、3DES、AES 和OOAES 在一臺(tái)搭載i5-9400 @2.9 GHz 處理器的windows 10 機(jī)器上進(jìn)行 500 次蒙特卡羅仿真實(shí)驗(yàn),編程語(yǔ)言為C++11,統(tǒng)計(jì)加解密總耗時(shí)和明文出現(xiàn)后的在線(xiàn)段耗時(shí)。其中,加密時(shí)長(zhǎng)定義為加密運(yùn)算階段耗時(shí),即各個(gè)加密運(yùn)算步驟耗時(shí)之和;解密時(shí)長(zhǎng)定義為解密運(yùn)算階段耗時(shí),即各個(gè)解密運(yùn)算步驟耗時(shí)之和;在線(xiàn)運(yùn)行時(shí)長(zhǎng)等于加密在線(xiàn)運(yùn)行時(shí)長(zhǎng)和解密在線(xiàn)運(yùn)行時(shí)長(zhǎng)之和,表示明文出現(xiàn)后轉(zhuǎn)換為密文的時(shí)間和密文出現(xiàn)后轉(zhuǎn)換為明文的時(shí)間。在實(shí)驗(yàn)中,利用C++chrono 庫(kù)中的steady_clock 函數(shù)統(tǒng)計(jì)1 000 次加解密的耗時(shí)之和,以減少單次統(tǒng)計(jì)的不必要誤差。

在仿真結(jié)果中,圖13 和圖14 分別給出了總耗時(shí)和在線(xiàn)段耗時(shí)對(duì)比,表2 給出了各階段耗時(shí)的平均統(tǒng)計(jì)結(jié)果。從圖13、圖14 和表2 可以看出,本文提出的OOAES 具有良好的全程計(jì)算效率和極其優(yōu)異的在線(xiàn)段計(jì)算效率,主要體現(xiàn)在以下兩點(diǎn)。

表2 1 000 幀CAN 報(bào)文加解密各階段耗時(shí)的平均統(tǒng)計(jì)結(jié)果

圖13 1 000 幀報(bào)文加解密總耗時(shí)對(duì)比

圖14 1 000 幀報(bào)文加解密在線(xiàn)段耗時(shí)對(duì)比

1) OOAES 的加解密總耗時(shí)遠(yuǎn)小于常規(guī)AES 算法。OOAES 的加密部分與常規(guī)AES 基本一致,該部分單幀耗時(shí)大致相同,約為14 μs,但AES 的解密部分運(yùn)算量很大,單幀耗時(shí)達(dá)到65 μs。OOAES繞過(guò)AES 的解密模塊,仍然利用加密方法生成解密所采用的動(dòng)態(tài)會(huì)話(huà)密鑰,大大降低了解密計(jì)算量,單幀解密耗時(shí)僅14 μs,獲得了更優(yōu)異的加解密總耗時(shí)成績(jī)。

2) OOAES 的在線(xiàn)段耗時(shí)呈指數(shù)級(jí)降低。常規(guī)的DES、3DES、AES 等方法直接對(duì)明文(密文)進(jìn)行加密(解密)處理,在未獲取明文(密文)前的離線(xiàn)段缺乏預(yù)加密工作,導(dǎo)致所有加解密計(jì)算累積到加解密需求出現(xiàn)后,使在線(xiàn)段的計(jì)算負(fù)擔(dān)巨大,增加了CAN 報(bào)文數(shù)據(jù)產(chǎn)生到解密段的時(shí)延。從測(cè)試結(jié)果看,DES、3DES 和AES 的在線(xiàn)段單幀計(jì)算耗時(shí)分別達(dá)到了8.3 μs、24.3 μs 和79.4 μs,而采用了在線(xiàn)-離線(xiàn)處理技術(shù)的OOAES方法將大量計(jì)算前移至離線(xiàn)段,在線(xiàn)段僅利用動(dòng)態(tài)會(huì)話(huà)密鑰進(jìn)行異或加解密運(yùn)算,計(jì)算量指數(shù)級(jí)減小,每千幀在線(xiàn)段耗時(shí)僅為85 μs,單幀耗時(shí)為0.085 μs,領(lǐng)先DES 和AES 2~3 個(gè)數(shù)量級(jí),單幀CAN 報(bào)文加密接近零時(shí)延,可以做到“即請(qǐng)求,即加(解)密”。

3.4 不同消息周期下車(chē)載芯片資源占用分析

為了進(jìn)一步驗(yàn)證本文提出的方法在車(chē)載系統(tǒng)的可行性和有效性,利用一款搭載Arm Cortex-A53 max @1.2 GHz的車(chē)載旭日X3芯片進(jìn)行不同消息周期CAN 報(bào)文的加解密分析。

基于上述軟硬件條件,進(jìn)行1 000 組不同CAN消息周期的仿真實(shí)驗(yàn),每組仿真所采用的數(shù)據(jù)均為1 000 幀8 字節(jié)CAN 報(bào)文信息,消息周期根據(jù)文獻(xiàn)[17]給出的統(tǒng)計(jì)規(guī)律隨機(jī)采樣,確保小于10 ms周期的實(shí)驗(yàn)組數(shù)占比約為41%,10~20 ms 周期的實(shí)驗(yàn)組數(shù)占比約為31%。單幀CAN 報(bào)文加解密平均計(jì)算耗時(shí)分布如表3 所示。

表3 單幀CAN 報(bào)文加解密平均計(jì)算耗時(shí)分布

圖15 給出了單幀加解密平均耗時(shí)分布。從圖15可以看出,相較于運(yùn)算能力更強(qiáng)的Intel i5 芯片,基于車(chē)載旭日X3 芯片的加解密計(jì)算耗時(shí)有所增加,但單幀數(shù)據(jù)的加解密平均耗時(shí)仍然不超過(guò)0.75 ms(圖 15 中超過(guò)0.75 ms 的平均耗時(shí)占比為0),顯著小于CAN 消息周期,具有良好的可行性。為了進(jìn)一步分析CPU 計(jì)算資源占用情況,實(shí)驗(yàn)中同步統(tǒng)計(jì)了加解密過(guò)程中的CPU 占用率。

圖15 單幀加解密平均耗時(shí)分布

圖16 給出了不同消息周期下CPU 利用率的情況。從圖16 可以看出,消息周期越長(zhǎng),CPU 利用率越低;消息周期越短,CPU 利用率越高。這是因?yàn)橐欢〞r(shí)間內(nèi),加解密的計(jì)算負(fù)擔(dān)隨著消息收發(fā)頻率的增加而增加。盡管如此,從圖17 可以看出,CPU利用率超過(guò)4%的情況很少,占比不超過(guò)1%,事實(shí)上,在本次仿真中也僅出現(xiàn)一次,利用率為4.027 5%,這說(shuō)明本文提出的OOAES 計(jì)算資源占用有限,對(duì)其他應(yīng)用的影響不大。

圖16 不同消息周期下CPU 利用率的情況

圖17 CPU 利用率分布

4 結(jié)束語(yǔ)

根據(jù)車(chē)內(nèi)CAN 總線(xiàn)對(duì)數(shù)據(jù)加密低時(shí)延、輕量化、分組、針對(duì)性保密的需求,設(shè)計(jì)了基于在線(xiàn)離線(xiàn)處理的組合加密方法。該方法首先利用身份屬性對(duì)分組密碼進(jìn)行加密分發(fā),確保僅數(shù)據(jù)目標(biāo)OBU 可以完成密碼解密,避免單一OBU 攻破后全車(chē)信息泄露的風(fēng)險(xiǎn)?;谠诰€(xiàn)離線(xiàn)處理框架設(shè)計(jì)基于AES 的CAN 報(bào)文分組加密方法,巧妙地利用離線(xiàn)段進(jìn)行預(yù)加密計(jì)算,生成8 字節(jié)動(dòng)態(tài)會(huì)話(huà)密鑰,不僅解決AES 最小加密長(zhǎng)度與CAN 報(bào)文長(zhǎng)度不匹配的問(wèn)題,更實(shí)現(xiàn)量級(jí)地降低在線(xiàn)段加(解)密時(shí)長(zhǎng),具備報(bào)文數(shù)據(jù)“即請(qǐng)求、即加(解)密”的能力。

猜你喜歡
加解密密文離線(xiàn)
一種支持動(dòng)態(tài)更新的可排名密文搜索方案
基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
異步電機(jī)離線(xiàn)參數(shù)辨識(shí)方法
淺談ATC離線(xiàn)基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
FTGS軌道電路離線(xiàn)測(cè)試平臺(tái)開(kāi)發(fā)
離線(xiàn)富集-HPLC法同時(shí)測(cè)定氨咖黃敏膠囊中5種合成色素
PDF中隱私數(shù)據(jù)的保護(hù)方法
一種基于密文分析的密碼識(shí)別技術(shù)*
一種基于密文分析的密碼識(shí)別技術(shù)*
電子取證中常見(jiàn)數(shù)據(jù)加解密理論與方法研究
南陵县| 东至县| 长宁县| 上杭县| 陕西省| 崇阳县| 昔阳县| 汨罗市| 礼泉县| 乌拉特前旗| 巴彦淖尔市| 开封县| 金沙县| 青河县| 铁岭市| 双鸭山市| 天长市| 英超| 从化市| 光泽县| 佳木斯市| 西宁市| 吉水县| 同仁县| 海阳市| 壶关县| 清镇市| 阜宁县| 揭阳市| 玉门市| 启东市| 德保县| 四子王旗| 阳信县| 托克逊县| 阳城县| 阜平县| 青铜峡市| 宾川县| 义马市| 梨树县|