程和生,程和俠
(1.合肥師范學(xué)院 計(jì)算機(jī)系,安徽 合肥 230000;2. 安慶師范學(xué)院 計(jì)算機(jī)與信息學(xué)院,安徽 安慶 246133)
?
應(yīng)用于PEPS系統(tǒng)的滾動(dòng)碼技術(shù)研究
程和生1,程和俠2
(1.合肥師范學(xué)院 計(jì)算機(jī)系,安徽 合肥 230000;2. 安慶師范學(xué)院 計(jì)算機(jī)與信息學(xué)院,安徽 安慶 246133)
摘要:結(jié)合滾動(dòng)碼加密技術(shù)和無(wú)線(xiàn)通信技術(shù),設(shè)計(jì)了一款無(wú)鑰匙進(jìn)入和啟動(dòng)汽車(chē)的系統(tǒng)(PEPS),采用芯片PIC16F886作為主控應(yīng)答器主控芯片。本系統(tǒng)在沒(méi)有人為操作的情況下,可以自行識(shí)別用戶(hù)并開(kāi)啟門(mén)鎖。系統(tǒng)的關(guān)鍵技術(shù)是數(shù)據(jù)安全,根據(jù)PEPS的特點(diǎn)及其安全方面的需求,本文提出了一種改進(jìn)的16位AES加密算法,滾動(dòng)碼數(shù)據(jù)部分采用改進(jìn)的AES算法兩次加密,實(shí)現(xiàn)了32位數(shù)據(jù)的加密。在保證安全的前提下,大大提高了加密解密速度,降低對(duì)系統(tǒng)硬件要求,設(shè)計(jì)出一套低成本、高安全性的系統(tǒng)。
關(guān)鍵詞:PEPS;滾動(dòng)碼;AES
PEPS系統(tǒng)是一種無(wú)鑰匙就能進(jìn)入和啟動(dòng)汽車(chē)的安全系統(tǒng),越來(lái)越受到用戶(hù)的青睞。主要的大半導(dǎo)體芯片供應(yīng)商如MICROCHIP,TI,Atmel,F(xiàn)reescale,NXP等都針對(duì)該系統(tǒng)提出了自己的設(shè)計(jì)方案。國(guó)外在該項(xiàng)技術(shù)上有相對(duì)領(lǐng)先的研發(fā)方案和技術(shù)產(chǎn)品,由于技術(shù)保密和研發(fā)成本問(wèn)題,國(guó)內(nèi)汽車(chē)業(yè)對(duì)該系統(tǒng)的研發(fā)還不夠完善,所以PEPS系統(tǒng)的自主研發(fā)和設(shè)計(jì)亟需解決。此系統(tǒng)對(duì)硬件和安全性要求非常高,成本昂貴,國(guó)外主要裝配于高中檔轎車(chē)中。國(guó)內(nèi)車(chē)廠(chǎng)都在積極研發(fā)低成本和安全性較高的PEPS系統(tǒng)[1]。各大半導(dǎo)體芯片提供商基本都提供了完整的PEPS解決方案,安全加密算法各異,各有優(yōu)缺點(diǎn)。MICROCHIP公司提出KEELOQ加密技術(shù),具有其知識(shí)產(chǎn)權(quán),使用成本比較高;Atmel公司的PEPS系統(tǒng)采用標(biāo)準(zhǔn)AES加密算法,雖然此算法是免費(fèi)使用,但是對(duì)系統(tǒng)的硬件要求非常高;Freescale采用VKSP加密算法,具有自己的知識(shí)產(chǎn)權(quán),需要收取高昂的費(fèi)用;早期普遍應(yīng)用DES算法,此算法安全性較差,對(duì)硬件要求比較高,被AES算法取代[2]。主流PEPS系統(tǒng)采用AES或修改的AES算法,各自都對(duì)其算法有知識(shí)產(chǎn)權(quán),受制于人。本文提出了一種修改的AES加密算法,安全性高,對(duì)硬件要求比較低,運(yùn)行速度達(dá)到實(shí)際應(yīng)用要求。
1系統(tǒng)結(jié)構(gòu)與工作原理
1.1系統(tǒng)結(jié)構(gòu)
系統(tǒng)是由應(yīng)答器和基站兩個(gè)部分組成。應(yīng)答器部分主要有RF發(fā)射器、按鍵、MCU(PIC16F886)及三軸向AFE組成。車(chē)站基站主要包括LF發(fā)射器、RF接收器、MCU(PIC18F2680)及門(mén)鎖驅(qū)動(dòng)等部分,其結(jié)構(gòu)如圖1所示。
1.2工作原理
當(dāng)車(chē)載基站檢測(cè)到觸發(fā)輸入(開(kāi)啟LF信號(hào)發(fā)射器),LF發(fā)射器將發(fā)送一條125 kHz的數(shù)據(jù)報(bào)文。此LF信號(hào)發(fā)射的有效距離是1 m左右,應(yīng)答器在此范圍內(nèi)接收該條報(bào)文后,對(duì)報(bào)文數(shù)據(jù)進(jìn)行驗(yàn)證。若驗(yàn)證正確,應(yīng)答器立即發(fā)送一條頻率為433.92 MHz的UHF加密數(shù)據(jù)報(bào)文。車(chē)載基站接收到UHF報(bào)文數(shù)據(jù),初步判斷報(bào)文的有效性。若有效,解密滾動(dòng)碼,再次檢驗(yàn)解密的數(shù)據(jù),驗(yàn)證通過(guò)后,將進(jìn)行相應(yīng)開(kāi)啟車(chē)門(mén)等操作。
圖1系統(tǒng)的總體工作示意圖
2加密算法原理與實(shí)現(xiàn)
2.1編碼結(jié)構(gòu)
本系統(tǒng)采用報(bào)文的格式是由固定碼和跳碼組成。20位的同步計(jì)數(shù)值、8位識(shí)別碼和4位功能碼組成32位數(shù)據(jù),通過(guò)修改的AES算法加密,獲得32位的跳碼。28位序號(hào)、4位功能碼和2位CRC校驗(yàn)碼組成固定碼。具體的組成情況如圖2所示。
圖2UHF報(bào)文格式
2.2滾碼實(shí)現(xiàn)的軟件流程
加密算法采用修改的16位AES加密算法,將32位加密數(shù)據(jù)分成兩組16位數(shù)據(jù)。將同步計(jì)數(shù)值的低16位,將其奇數(shù)位組成新字節(jié)數(shù),如(1111 1010101010101010)b中的“0”位置取出并組成一個(gè)字節(jié)(0000 0000)b,剩下的數(shù)據(jù)組成12位數(shù)(1111 11111111)b,具體的情況如圖3所示。固定碼部分主要是28位序號(hào),從而增加了整個(gè)報(bào)文的長(zhǎng)度,為了延長(zhǎng)整個(gè)UHF報(bào)文的發(fā)射時(shí)間,主要目的是防止破解者采用排列組合的形式來(lái)破解密碼。固定碼部分提供功能碼,一方面,可以檢驗(yàn)接收的UHF數(shù)據(jù)的有效性,另一方面,可以檢驗(yàn)功能碼是否有誤。CRC對(duì)功能碼進(jìn)行校驗(yàn),確保功能碼的正確性。16位AES加密算法理論基礎(chǔ)將在下文介紹。
滾動(dòng)碼在發(fā)射命令之前必須先從芯片的EEPROM中讀取識(shí)別碼和同步計(jì)數(shù)值,計(jì)算獲取CRC-1校驗(yàn)信息,加密后發(fā)射。在發(fā)射完成之后,同步計(jì)數(shù)值自動(dòng)加一并保存到EEPROM 中?;窘邮盏酵暾腢HF數(shù)據(jù)報(bào)文,先判斷28位的序號(hào)是否匹配,正確之后,解密報(bào)文的滾動(dòng)碼并獲取同步計(jì)數(shù)值、識(shí)別碼和功能碼;接著判斷同步計(jì)數(shù)值是否匹配,不匹配就丟棄此報(bào)文;否則,固定碼中的功能碼和跳碼中的功能碼是否相同以及校驗(yàn)CRC校驗(yàn),確保功能碼的準(zhǔn)確性,判斷正確后,按照功能碼命令執(zhí)行操作,具體流程圖如圖4所示。從上述分析可以看出,安全性關(guān)鍵是加密算法。
圖3UHF內(nèi)部構(gòu)成
2.3修改后的AES 加密算法
參考文獻(xiàn)修改后的16位AES加密算法的具體理論[3-7],使用在伽羅瓦域GF(24)修改的AES加密算法,每次加密數(shù)據(jù)是16位,密鑰也是16位。具體數(shù)據(jù)分配如圖3所示。
16位加密數(shù)據(jù)的具體處理過(guò)程如圖5所示,表示16位數(shù)分成4份,每份占4位,分別用p0,p1,p2和p3表示,且排成矩陣P。這樣處理可以保證加密后的數(shù)據(jù)還是16位。
此加密算法,需要經(jīng)過(guò)如下的四個(gè)步驟,分別是NibbleSub,ShiftRow,MixColumn,KeyAddition,將簡(jiǎn)要介紹這幾個(gè)過(guò)程。
NibbleSub變化的過(guò)程,通過(guò)S-box變換矩陣P數(shù)據(jù),生成矩陣B。具體的實(shí)現(xiàn)通過(guò)查S-box表,如表1和圖6所示,表示NibbleSub數(shù)據(jù)變換實(shí)現(xiàn),通過(guò)查表的方式實(shí)現(xiàn)。
ShiftRow變化過(guò)程,是一種行轉(zhuǎn)換,第一行不變換,第2行左循環(huán)4位,具體的過(guò)程如圖7所示,表示矩陣B經(jīng)過(guò)ShiftRow變換生成矩陣C。
MixColumn變化具體過(guò)程如圖8所示,表示矩陣C變換生成矩陣D,通過(guò)MixColumn變換實(shí)現(xiàn)。列混合需要每個(gè)輸入塊與列和乘以一個(gè)常數(shù)矩陣,以獲得一個(gè)新的輸出列。
其中
以上是修改的AES加密解密算法的核心,將在下文給出測(cè)試情況。
圖7ShiftRow變化
3測(cè)試
測(cè)試系統(tǒng),編譯軟件使用MAPLAP X IDE V2.05,初始數(shù)據(jù)使用0x9c,0x63,初始密鑰是0xc3,0xf0,加密結(jié)果如圖9所示。(圖9所示數(shù)據(jù)0x9c63的加密結(jié)果是0x72c6。)
本系統(tǒng)測(cè)試數(shù)據(jù),具體的明文數(shù)據(jù)有:同步計(jì)數(shù)值設(shè)為1,功能碼為(1111)b(占4位),識(shí)別碼為(1111 1111)b(占8個(gè)位)。(圖10表示同步計(jì)數(shù)值是1時(shí),修改的AES加密的結(jié)果。圖11表示同步計(jì)數(shù)值是2時(shí),修改的AES加密的結(jié)果。)
圖9加密的結(jié)果
通過(guò)圖10和圖11,可以看出,當(dāng)識(shí)別碼相同、功能碼相同的情況下,同步計(jì)數(shù)值自動(dòng)加一之后,密文發(fā)生了很大的變化。同步計(jì)數(shù)值為1時(shí),密文是0x96c5;而同步計(jì)數(shù)值為2時(shí),密文是0xb6c7,兩次加密的數(shù)據(jù)前16位和后16位都發(fā)生了變化,破解程度提高,基本滿(mǎn)足滾動(dòng)碼的需求。連續(xù)8次發(fā)送的開(kāi)鎖命令的滾動(dòng)碼信息,如表2。
表2 程序測(cè)試結(jié)果
運(yùn)行的速度方面,修改的AES在單片機(jī)中運(yùn)行的速度很快,圖12表示標(biāo)準(zhǔn)的AES算法在PIC單片機(jī)上的運(yùn)行速度,圖13表示修改的AES算法在PIC單片機(jī)上的運(yùn)行速度。
從圖12和圖13可見(jiàn),在晶振為4MHz單片機(jī)中,標(biāo)準(zhǔn)的AES加密速度是3.74 ms,而修改的AES加密速度則只有0.443 ms。修改的AES明顯地提高了運(yùn)行的速度。
4結(jié)束語(yǔ)
本文主要討論了PEPS系統(tǒng)及滾動(dòng)碼技術(shù),重點(diǎn)修改了AES加密算法及其在PIC16F886軟件實(shí)現(xiàn),進(jìn)行了測(cè)試和比較,系統(tǒng)穩(wěn)定性較好,信號(hào)安全性較高。本系統(tǒng)主要應(yīng)用于汽車(chē)門(mén)禁,可以推廣到一般門(mén)禁和其他的安全控制領(lǐng)域。
[1] Wikipedia. Advanced Encryption Standard[EB/OL]. http://en.wikiped ia.org/wiki/Advanced_Encryption_Standard .2014.
[2] Microchip Inc. PIC16F886 datasheet[EB/OL]. http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en 022266. 2014.
[3] NIST. 2011. AES Homepage[EB/OL]. Available at http://www.nist.gov/aes.
[4] Microchip Inc. HCS365datasheet[EB/OL]. http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en01076 5 .2013.
[5] Rapael Chung, Wei Phan. Mini Advanced Encryption Standard (Mini-AES): A Tested for Cryptanalysis Students[J].Cryptologia, 2002,26(4).
[6] K.Atasu, M. Macchetti, L. Breveglieri. Efficient AES Implementations for ARM Based Platforms[J].In ACM SCA 2004,Nicosia, Cyprus, Mar.,2004:841-845.
[7] Bizaki, H.K., Mansoon, S.D., Falahati,A.. Linear Cryptanalysis on Second Round Mini-AES[J].Information and Communication Technologies, ICTTA 06.2nd, 2006: 1958-1962.
A Preliminary Study of Hopping Code Technique Applied in PKE System
CHENG He-sheng1, CHENG He-xia2
(1. Dept. of Computers, Hefei Teachers College, Hefei 230000, China;2. Dept. of Computers, Anqing Teachers College, Anqing 246133, China)
Abstract:A new type of Passive Entry & Passive Start (PEPS) system is designed based on microcontroller PIC16F886, hopping code and wireless communication technologies are investigated and discussed in this paper. The system can recognize user identity without the keystoke. According to the characteristics and needs of security, this paper presents an improved 16-bit AES encryption algorithm to design a low-cost, fast encryption and decryption, high security system. Improved AES algorithm uses twice to achieve 32-bit rolling code data.
Key words:PEPS, hopping code, AES
文章編號(hào):1007-4260(2015)02-0044-05
中圖分類(lèi)號(hào):TP309.7
文獻(xiàn)標(biāo)識(shí)碼:A
作者簡(jiǎn)介:程和生,男,碩士,合肥師范學(xué)院計(jì)算機(jī)系教師,主要研究通信與信息系統(tǒng)、嵌入式系統(tǒng)。
基金項(xiàng)目:安徽省教育廳自然科學(xué)研究項(xiàng)目(KJ2012Z230)。
收稿日期:2014-06-14