蔣少華, 丁志中
(合肥工業(yè)大學 計算機與信息學院,安徽 合肥 230009)
動態(tài)密鑰機制AES算法在汽車門禁系統(tǒng)中的應用
蔣少華, 丁志中
(合肥工業(yè)大學 計算機與信息學院,安徽 合肥 230009)
針對傳統(tǒng)汽車無鑰門禁系統(tǒng)中AES加密算法固定初始密鑰存在密鑰管理難度問題,文章提出一種基于動態(tài)密鑰機制下的AES算法。實驗結(jié)果表明該算法不僅可以實時有效地更新管理AES算法的初始密鑰,而且對系統(tǒng)中身份認證過程中的數(shù)據(jù)安全防盜性有較好的改善,在一定程度上消除了該系統(tǒng)密鑰泄露的安全隱患,對無鑰門禁系統(tǒng)中身份認證協(xié)議的設計具有一定的參考價值。
汽車無鑰門禁系統(tǒng);AES算法;動態(tài)密鑰機制;單向散列函數(shù)
汽車無鑰門禁(passive keyless entry,PKE)系統(tǒng)是指當攜帶鑰匙的駕駛員靠近汽車時,無需拿出鑰匙,只要按下車門把手上的微觸開關(guān),便可自動開鎖,其以使用便捷性和安全防盜性在汽車配置市場獲得了廣泛的應用,逐漸代替無線遙控鑰匙系統(tǒng)(remote keyless entry,RKE)成為中高端車型的標準配置。
PKE系統(tǒng)的安全性一直是人們關(guān)注的焦點。PKE作為雙頻段的雙向通信系統(tǒng),其通信安全協(xié)議中最重要的就是對高頻信號的加密。因此PKE系統(tǒng)中高頻通信的加密算法,也就成為了PKE系統(tǒng)研究的重點和難點。早先Microchip公司提出基于滾動碼Keeloq技術(shù)的PKE系統(tǒng)方案,采用Keeloq加密算法對高頻通信中指令幀信號加密,在當時被稱為最安全的算法[1]。隨著信息技術(shù)的發(fā)展,Keeloq技術(shù)漸漸顯現(xiàn)出密鑰長度短,抗“暴力”搜索攻擊能力有限等不足,最終Keeloq算法被破解。其后NEC公司提出基于數(shù)據(jù)加密算法(Data Encryption Standard,DES)的PKE系統(tǒng),DES算法的密鑰長度短和存在弱密鑰問題也為整個系統(tǒng)的安全帶來隱患。Atmel公司提出了基于高級加密算法標準(Advanced Encryption Standard,AES)的PKE系統(tǒng)。AES算法無論在密鑰長度上還是在抗密碼分析攻擊能力上,都比Keeloq算法和DES加密算法強很多[2]。然而對于整個系統(tǒng)的安全性而言,除了加密算法外,密鑰的分配和管理對系統(tǒng)的安全性影響也很重要。由于PKE中初始固定密鑰在出廠時統(tǒng)一配置,因此存在密鑰泄露的風險,同時也加大了密鑰管理和分配的難度,給系統(tǒng)的安全性帶來隱患。
本文針對PKE系統(tǒng)初始固定密鑰易泄露的問題,提出了基于動態(tài)密鑰機制的AES算法,在每次加密過程中,初始密鑰都會更新,有效防范了密鑰泄露攻擊;另一方面,對數(shù)據(jù)幀采用有效的糾錯和檢碼機制,保證了系統(tǒng)的可靠性[3]。
高級加密標準,通常稱為AES算法,是由美國國家標準技術(shù)研究所(NIST)通過公開招標并從眾多候選算法中選出的一種效率高且加密強度大的對稱加密算法。AES是一個迭代分組算法且明文塊和密鑰塊取值都可變,分別規(guī)定為128、192、256 bits,使算法的安全性和高效性得到很好的保證[4]。
由于對稱性,AES的解密過程就是其逆操作。AES加密算法的具體流程如圖1所示。
圖1 AES加密算法流程圖
AES算法的設計基于寬軌跡策略并采用SPN結(jié)構(gòu),因此AES的一次加密過程由多輪迭代組成,其每輪操作有4種:字節(jié)替換、行位移、列混合和輪密鑰加。根據(jù)數(shù)據(jù)和密鑰長度,AES算法有不同的輪數(shù)[5],見表1所列。
表1 128AES、192AES的參數(shù)
(1)算法初始化。AES算法的輸入和輸出都是以字節(jié)為最小單位,輸入時把數(shù)據(jù)幀進行束分割,把數(shù)據(jù)塊按每8 bits為1束,按列填充到矩陣A中(也稱為狀態(tài))。標準算法中所用到的2個矩陣分別為:
其中,ai,j=0或1。下面以A128為例闡述后續(xù)算法步驟。
(2)字節(jié)替換。字節(jié)替換是一個非線性變換,對元素起到混淆的作用。它對每個元素的操作都是獨立的,是一個磚匠變換,又稱S盒變換:
S盒變換過程為:aij根據(jù)下標在S中找到相應位置的元素進行替換。在解密時對逆S盒進行同樣的操作。
S盒變換是AES唯一的非線性步驟,關(guān)系到整個算法的抗差分密碼和線性密碼分析能力。所以S盒和逆S盒的構(gòu)造要遵循非線性度和數(shù)復雜度等準則,利用有限域GF(28)中求元素的逆和可逆仿射變換2個過程來實現(xiàn),以保證差分均勻性和線性偏差達到最佳。
(3)行位移。行位移是一種線性變換,其作用是確保多輪后數(shù)據(jù)高度擴散。行位移在狀態(tài)的每行間進行,其操作是將第m行進行偏移量為m字節(jié)的循環(huán)左移,即
解密時進行循環(huán)右移。
(4)列混合。列混合變換也屬于線性變換,在列混合操作中,狀態(tài)矩陣的每一列看成是有限域GF(28)上的多項式。然后與固定多項式03x3+02x2+01x+02(系數(shù)為十六進制數(shù))相乘,模x4+1可表示為:
其中,a0、a1、a2、a3是經(jīng)過行位移后的狀態(tài)列。列混合的逆操作只要把列混合變換中的c(x)換成它的逆多項式d(x)即可。逆多項式滿足:
(5)輪密鑰加。把每輪的輪密鑰(AES算法中每一輪操作所用密鑰,其中每輪密鑰各不相同,是從初始的固定密鑰中由密鑰擴展算法獲得)與列混合操作后的狀態(tài)矩陣異或,它本身也是逆操作。
單向散列函數(shù)可以將任意長度的數(shù)據(jù)塊壓縮到某一固定長度。例如散列函數(shù)MD5,可以由任意長度的消息輸入壓縮得到128 bits長度的散列值,且具有良好的隨機性[6]。
MD5函數(shù)的模型為:h=H(M)。其中,M 可以為任意長度;h為固定128 bits的長度散列值。H具有以下性質(zhì):① 給定H 和M,很容易計算h;② 給定h和H,很難計算M;③ 給定H,要找到2個不同的M1和M2,使得H(M1)=H(M2)在計算上是不可行的。其流程如圖2所示。
圖2 MD5流程圖
利用單向函數(shù)這一性質(zhì)得到PKE系統(tǒng)初始動態(tài)密鑰,過程如下:
其中,M 由同步碼、汽車ID、鑰匙ID、廠商代碼、固定初始密鑰構(gòu)成。
把128 bits散列值作為系統(tǒng)的動態(tài)密鑰(DK),每次同步碼的變更會引起M 的變化,從而帶動DK的更新(M的長度不受限制,可以兼容不同廠家代碼格式),這樣可以滿足產(chǎn)生動態(tài)密鑰所要求的2個看似矛盾的性質(zhì),即變化隨機性和固定唯一性,但它們又是辯證統(tǒng)一的關(guān)系。變化隨機性表現(xiàn)為每次加密前產(chǎn)生的動態(tài)密鑰在每位上的變化都有高隨機性,固定唯一性是指若M固定,則DK就唯一。這樣不僅可以抵抗密鑰泄露攻擊,又確保加解密時系統(tǒng)所用動態(tài)密鑰的同步。
在動態(tài)密鑰機制中,遵循先產(chǎn)生后分配再驗證的順序步驟。具體過程在系統(tǒng)安全通信協(xié)議的應用中描述。
PKE系統(tǒng)由車載基站和智能鑰匙2部分構(gòu)成,2者之間通過125 k Hz低頻信道和433 MHz高頻信道完成雙向通信過程,如圖3所示。車載基站的低頻發(fā)射器在車門附近約1~2 m距離的范圍內(nèi)形成電磁場,作為搜索該區(qū)域內(nèi)鑰匙的信號,接收到搜索信號后的鑰匙通過高頻信道向車載基站發(fā)送相應的指令[7]。其中高頻信道中指令幀包含了用戶指令(功能碼)和同步碼等重要信息,一旦泄漏或被攔截后破解,對整個汽車的安全性存在很大威脅。
圖3 PKE系統(tǒng)框架圖
該協(xié)議分為出廠階段、學習階段和應用階段。學習模式是在指定的安全環(huán)境下才可被激活,這一環(huán)境下的數(shù)據(jù)交換用固定密鑰FK做192AES加解密算法。學習結(jié)束后,鑰匙端含有跟基站端相同的信息參數(shù),如圖4所示。
圖4 PKE系統(tǒng)工作圖
隨后直接用(7)式產(chǎn)生動態(tài)密鑰DK,并保存等待調(diào)用。
在應用階段中,加密過程是在接收到車載基站的搜索信號后觸發(fā)。表2、表3所列為A幀和B幀的數(shù)據(jù)幀格式,A幀包含功能碼和同步碼信息等核心重要信息,長度為64 bits,經(jīng)過1∶2卷積編碼后長度變成128 bits,不僅可以滿足AES算法對待加密數(shù)據(jù)幀格式的要求,同時加入糾錯檢碼機制,確保了數(shù)據(jù)的傳輸可靠性。加密過程如圖5所示。
對經(jīng)過卷積編碼后的A幀用動態(tài)密鑰DK作為128AES的初始密鑰進行一次加密后,再結(jié)合B幀進行初始密鑰為FK的192AES進行二次加密,這時采用的是消息鑒別加密模式,B幀攜帶驗證信息充當 MAC報文[8]。
雙重加密不僅增加了同步碼和指令碼等鑰匙中核心數(shù)據(jù)的安全性,還提高了無線傳輸?shù)目煽啃院陀行浴?/p>
表2 A幀數(shù)據(jù)格式 bit
表3 B幀數(shù)據(jù)格式 bit
圖5 鑰匙端加密過程
車載基站端在接收到加密后的指令幀時,先進行FK下192AES解密,如圖6所示,一次解密后對MAC幀(B幀)進行驗證,22 bits汽車ID和30 bits鑰匙ID作為一次驗證碼??紤]到算法的時效性,一次驗證成功后則直接用MAC幀攜帶的同步碼低10位對原同步碼進行同位代替,從而快速產(chǎn)生動態(tài)密鑰DK,再用DK進行128AES進行二次解密。利用A幀的身份碼進行二次驗證,主要是對DK進行檢驗,確保數(shù)據(jù)的有效傳輸。
圖6 基站端解密驗證過程
考慮到誤操作等情況(鑰匙不在基站范圍內(nèi)觸發(fā)微觸按鈕激活系統(tǒng)),二次驗證中同步碼的值不要求完全相同,這里采用同步窗口機制:當比對后同步碼差值在(0,16)時,屬于單操作窗口,直接執(zhí)行功能碼;差值在(16,1 000)屬于雙操作窗口,則暫存當前同步碼,等待下次解密獲取同步碼,若值連續(xù),則執(zhí)行功能碼。余下為拒絕操作窗口,拒絕執(zhí)行功能碼[9]。
同時這一機制還能保證第1次驗證后同步碼低10位同步代換的準確性。由于38位的同步碼中,低10位碼的范圍是[0,210],也就是說如果同步碼不在雙操作窗口的范圍內(nèi),即使同位替換后,也無法產(chǎn)生正確的DK。
為了測試該通信協(xié)議的安全性和可靠性,用Matlab編程對動態(tài)密鑰生成隨機性和明密文相關(guān)性進行測試。
(1)動態(tài)密鑰生成隨機性測試。在協(xié)議中,保證其他參數(shù)不變,隨機設定同步碼初始值后令其自加100次,得出密鑰發(fā)生變化的情況。試驗結(jié)果如圖7所示。
圖7 同步碼自加時的密鑰變化率
其中變換率是指與原碼比較變動的位數(shù)所占碼數(shù)的比率,動態(tài)密鑰更新后的變化率越接近0.5,則說明其隨機性越高。由圖7可以得出,隨著同步碼自加,密鑰變化率在0.5附近。這說明該協(xié)議生成的動態(tài)初始密鑰滿足隨機性要求,可以有效抵抗密鑰猜測攻擊。
(2)動態(tài)密鑰機制下的密文生成隨機性測試。動態(tài)密鑰機制下改變AES算法中的初始密鑰,產(chǎn)生的密文是否也像標準AES中一樣滿足隨機性要求也是衡量該協(xié)議安全性的一項重要指標。保證其他參數(shù)不變,令密鑰發(fā)生變化,得出動態(tài)密鑰機制下生成密文情況。
在實驗中,控制密鑰變化率從0到1時,得出密文的變化率如圖8所示。理論上不管密鑰改變多少位,密文的變化率越接近0.5,則生成密文的隨機性越好。圖8中的密文變化率集中在0.4~0.65之間,說明基本能滿足密文生成的隨機性要求,可以有效抵抗重發(fā)攻擊和唯密文攻擊。
圖8 密鑰變化時的密文變化率
(3)動態(tài)密鑰機制下明密文相關(guān)性測試。協(xié)議中,保證其他參數(shù)不變,令其固定密鑰發(fā)生改變,得出動態(tài)密鑰機制下產(chǎn)生的密文與明文對比的情況,如圖9所示。
圖9 密鑰變化時的明密文對比變化率
理論上,不管密鑰變化多少位,明密文比較變化率越接近0.5,則說明該動態(tài)密鑰機制下明密文的相關(guān)性越小,則抗選擇明文攻擊能力越強。圖9中明密文比較變化率在0.45~0.6之間比較密集,說明該動態(tài)密鑰機制下的AES算法滿足明密文相關(guān)性小的要求。
本文利用動態(tài)密鑰機制下的AES算法改進汽車PKE系統(tǒng)高頻通信協(xié)議,形成一次一密、動態(tài)密鑰和固定密鑰相結(jié)合、2次認證的高安全性系統(tǒng)。在PC機上用Matlab仿真,實驗結(jié)果表明,該協(xié)議可以在低時耗和高可靠性的前提下有效提高PKE系統(tǒng)的密鑰抗攻擊性和安全可靠性。
[1]張俊林.滾動碼技術(shù)在汽車防盜系統(tǒng)中的應用[J].工業(yè)控制計算機,2010,23(6):111-113.
[2]魏嘉銀,呂 紅,秦永彬.一種基于AES算法的通信信息加密傳 輸 方 案 [J].計 算 機 與 數(shù) 字 工 程,2011,39(10):121-123.
[3]韓 德,張 倩.基于Rijndael算法的動態(tài)密鑰和算法實現(xiàn)[J].信息工程,2013,3(1):8-12.
[4]Daemen J,Rijmen V.高級加密標準AES算法Rijndael的設計[M].谷大武,徐勝波.譯.北京:清華大學出版社,2003:128-130.
[5]韓 雯.AES加密算法及其IC設計方法研究[D].青島:青島科技大學,2008.
[6]閆 浩.AES加密算法的無鑰匙進入系統(tǒng)[J].單片機與嵌入式系統(tǒng)應用,2011,33(2):65-67.
[7]閆 浩.基于AES的汽車無鑰匙門禁系統(tǒng)的研究與實現(xiàn)[D].鄭州:鄭州大學,2011.
[8]湯鵬志,陳仁群,張慶蘭.對一類基于身份簽密方案的分析及改進[J].合肥工業(yè)大學學報:自然科學版,2014,37(8):938-943.
[9]程和生.被動門禁系統(tǒng)的設計及其關(guān)鍵技術(shù)的研究[D].合肥:合肥工業(yè)大學,2010.
Application of dynamic key mechanism of AES algorithm in passive keyless entry system
JIANG Shao-h(huán)ua, DING Zhi-zhong
(School of Computer and Information,Hefei University of Technology,Hefei 230009,China)
In order to solve the key management problem of advanced encryption standard(AES)algorithm in the traditional passive keyless entry(PKE)system,an AES algorithm based on dynamic key mechanism is proposed.The experimental results show that the algorithm can not only update and manage the initial key of AES algorithm in a real-time and effective way,but also improve the data security identity in the system certification process.The hidden danger of the key disclosure in the PKE system is eliminated to a certain extent.The proposed method provides a reference for the design of identity authentication protocol in the PKE system.
passive keyless entry(PKE)system;advanced encryption standard(AES)algorithm;dynamic key mechanism;one-way hash function
TP309.7;U463.676
A
1003-5060(2015)02-0199-05
10.3969/j.issn.1003-5060.2015.02.013
2014-02-13;
2014-03-05
合肥工業(yè)大學昌輝汽車技術(shù)研究所資助項目(12-075)
蔣少華(1989-),男,安徽合肥人,合肥工業(yè)大學碩士生;
丁志中(1962-),男,安徽蕪湖人,博士,合肥工業(yè)大學教授,碩士生導師.
(責任編輯 何曉雄)