(中國電子科技集團公司第五十八研究所 江蘇 214072)
據(jù)公安部交管局統(tǒng)計,我國汽車擁有量超1.5億,銷售量躍居世界第一。隨著汽車網(wǎng)絡(luò)化程度的提高,車聯(lián)網(wǎng)采用各種通信技術(shù)實現(xiàn)汽車控制、導(dǎo)航定位、聯(lián)網(wǎng)應(yīng)用、車地通信(汽車與路邊設(shè)備通信)、車車通信、車人通信等功能。
車聯(lián)網(wǎng)主要包含4個部分,主機、汽車T-BOX、手機APP 及后臺系統(tǒng)。其中汽車T-BOX 主要用于和后臺系統(tǒng)、手機APP 互聯(lián)通信,實現(xiàn)車輛的信息顯示和控制[1]。
車聯(lián)網(wǎng)的發(fā)展的同時,也隱含了汽車被遠程攻擊的威脅。汽車內(nèi)部存在很多安全缺口,如OBD 故障檢測接口、數(shù)字門鎖、胎壓監(jiān)測系統(tǒng)、WIFI/藍牙、2G/3G/4G/5G通信設(shè)備等。這些漏洞一旦被攻擊,車輛存在著被監(jiān)聽和被劫持的可能性[2]。
本文從車聯(lián)網(wǎng)信息安全分析,提出設(shè)計一種基于AES算法的新安全應(yīng)用機制的數(shù)字信號處理器設(shè)計方案,通過實驗證明該方案的有效性。
車聯(lián)網(wǎng)體系構(gòu)架分為應(yīng)用層、傳輸層和采集層[3],如圖1所示。
應(yīng)用層,應(yīng)用層主要是針對汽車用戶,通過手機或者移動終端,為用戶提供智能服務(wù)。應(yīng)用層主要實現(xiàn)路況分析、車輛狀態(tài)分析和車輛故障分析等功能,在此過程中與城市交通中心達到信息共享,對用戶提供便捷服務(wù)的同時,也為城市交通提供協(xié)助。
傳輸層,傳輸層是通過4G、藍牙、RFID 等手段,將信息采集的數(shù)據(jù)傳輸給應(yīng)用層。
采集層,采集層主要是利用汽車傳感器、視頻采集器、音頻采集器等,獲取汽車自身狀態(tài)信息和路況等信息,通過傳輸層再到應(yīng)用層。
現(xiàn)階段車聯(lián)網(wǎng)功能還處于監(jiān)控階段,未能有效實現(xiàn)人、車、路的統(tǒng)一。
圖1 車聯(lián)網(wǎng)系統(tǒng)構(gòu)架
近年來網(wǎng)絡(luò)安全研究人員針對車聯(lián)網(wǎng)的攻擊測試案例,反映了車聯(lián)網(wǎng)在應(yīng)用中面臨的巨大安全威脅:
2013年召開的拉斯韋加斯黑客大會上,兩位黑客演示了如何攻擊豐田普銳斯和福特翼虎汽車的控制系統(tǒng),從而實現(xiàn)包括高速行駛時突然制動、使車輛剎車失靈、猛打方向盤等一系列操作。2015年,兩位安全研究人員演示了利用克萊斯勒公司Jeep Cherokee的車聯(lián)網(wǎng)“Uconnect”功能的漏洞,遠程入侵并控制目標(biāo)車輛,自由操控汽車上的娛樂系統(tǒng)、雨刷、方向盤、引擎等。
車聯(lián)網(wǎng)絡(luò)通過RFID、移動通信網(wǎng)(2G/3G/4G/5G)、WIFI 等無線通信手段與云平臺和手機APP相連,存在通訊信息暴露的安全風(fēng)險。黑客通過信息數(shù)據(jù)規(guī)律,攻擊車輛,控制車輛非法加速、減速、開門和關(guān)門等危險操作。傳輸信息加密勢在必行。
AES算法是基于Rijndael 結(jié)構(gòu)的迭代對稱分組密碼算法,分組長度為固定128Bit,可支持128Bit、192Bit和256Bit 長度的密鑰,轉(zhuǎn)換的輪數(shù)由密鑰長度和分組長度共同決定。128Bit的AES算法加密流程如圖2所示,在第一輪密鑰加變換后進入10 輪迭代,前9 輪完全相同,一次經(jīng)過字節(jié)替代,行位移、列混合、輪密鑰加,最后一輪不同,跳過了列混合運算。與之對應(yīng)的解密流程是加密流程的逆運算,每一步操作都是可逆的,按相反的順序進行完成解密流程,需要注意的是,二者輪密鑰的順序也正好相反[4]。
圖2 AES加解密流程圖
字節(jié)變換(SubByte)的主要功能是通過使用S盒完成一個字節(jié)到另外一個字節(jié)的映射。S盒是一個大小16*16 矩陣,完成一個8 比特輸入到8 比特的輸出的映射,輸入的高4 位的值是位行標(biāo),低4位的值是列標(biāo),其本質(zhì)是一個查表過程[5]。
行位移(ShiftRows)是在字節(jié)變換的基礎(chǔ)上,僅對狀態(tài)矩陣的每個橫行進行向左循環(huán)移位操作[6]。其中,128Bit的AES算法經(jīng)過該變換后,狀態(tài)矩陣第1 行不移位,第2、3、4 行分別向左循環(huán)移位1、2、3個字節(jié),如公式(1)表示。
逆向行移位即是相反的操作,如下式(2)所示。
列混淆(MixColumn)是對狀態(tài)矩陣逐列進行變換,狀態(tài)矩陣的每列可以看作是系數(shù)來自有限域GF(25)且次數(shù)小于4的多項式a(x),在取模x4下與多項式cc(x)相乘[7],如式(3)(4)所示:
寫成矩陣形式為式(5):
與行移位的作用一樣,列混淆同樣是確保AES算法多輪運算之后獲得高度的擴散特性。
輪密鑰加(AddRoundKey)是將輪密鑰按位異或到中間數(shù)據(jù)。輪密鑰與初始密鑰相關(guān),由密鑰編排算法計算和分配,且輪密鑰長度等于分組長度。
加密引擎芯片設(shè)計在芯片內(nèi)部集成了AES算法加解密模塊。基于AES算法的原理分析,行移位運算不需要邏輯門,輪密鑰加運算只涉及異或門邏輯,預(yù)先將11 輪解密輪密鑰存儲到寄存器組中可代替密鑰擴展功能,相比之下,字節(jié)變換和列混淆的實現(xiàn)比較復(fù)雜。以AES解密模塊中的逆字節(jié)變換和逆列混淆為例:逆字節(jié)變換其實是一個S盒查表的過程,借助S盒查找并替換字節(jié)來掩蓋明文和密文之間的關(guān)系,是AES輪變換中一個非線性操作環(huán)節(jié),也是保證AES安全的設(shè)計關(guān)鍵。常見的實現(xiàn)方法有查找表和有限域運算,相比查找表法,有限域運算實現(xiàn)S盒操作會節(jié)約一定的面積開銷,同時也會增加字節(jié)替換的運算復(fù)雜度,降低算法的運算效率。而查找表的硬件電路簡單,易于實現(xiàn),且每個時鐘周期就能完成一次S盒運算讓查找表形式的S盒比有限域形式的S盒有著更高的系統(tǒng)吞吐率[8]。本電路設(shè)計采用case 語句完成S盒的查表替換操作,以AES解密算法為例。
由AES算法原理可知,逆列混淆可用有限域GF(28)GF(28)的矩陣形式表示如下:
每個元素變換后如下式所示:
公式(7)表示的是逆列混淆運算,由有限域運算法則可知,公式(7)是多次乘2 運算和異或操作的組合運算,調(diào)用xtime函數(shù)可以完成乘2 運算的邏輯實現(xiàn),其運算過程如式(8)所示。
逆列混淆運算公式可以轉(zhuǎn)化為基于xtimextime 函數(shù)的運算?;谏鲜鯝ES解密模塊的硬件設(shè)計思路,采用Verilog HDL語言完成電路加解密的功能描述,其邏輯結(jié)構(gòu)如圖3所示:
圖3 AES解密模塊電路圖
電路的功能仿真采用Cadence 公司的NC Verilog軟件,用128bit位密鑰進行實驗,其中AES加密結(jié)果如圖4,128bit 密鑰128bit 明文加密需要14個時鐘周期[9-10]。
密鑰/明文/數(shù)據(jù)如下:
KEY=00000000000000000000000000000000
數(shù)據(jù)輸入:
f34481ec,3cc627ba,cd5dc3fb,08f273e6,
密文輸出:
0336763e,966d9259,5a567cc9,ce537f5e
圖4 AES加密結(jié)果
AES解密結(jié)果如圖5所示:
圖5 AES解密結(jié)果
KEY=00000000000000000000000000000000
輸入密文:
0336763e,966d9259,5a567cc9,ce537f5e
輸出明文:
f34481ec,3cc627ba,cd5dc3fb,08f273e6
本文基于車聯(lián)網(wǎng)的系統(tǒng)構(gòu)架,針對車聯(lián)網(wǎng)數(shù)據(jù)安全性過低,提出了加密引擎芯片設(shè)計。從芯片自身入手,添加了AES加解密模塊。最后,通過實驗結(jié)果證明,使用AES加密算法可以有效地對傳輸控數(shù)據(jù)進行保護。