一種基于KEELOQ的改進(jìn)加密算法及其在單片機(jī)中的實(shí)現(xiàn)技術(shù)
摘 要:討論了Microchip公司的KEELOQ加解密算法的實(shí)現(xiàn)機(jī)制,通過引入隨機(jī)數(shù),提出了一種新的改進(jìn)算法,并給出了其在單片機(jī)中的實(shí)現(xiàn)方法。該算法具有簡單實(shí)用、所需硬件資源少、傳輸效率和安全性相對較高等優(yōu)點(diǎn),適用于需要數(shù)據(jù)加密的小型無線數(shù)據(jù)傳輸系統(tǒng),具有廣闊的應(yīng)用前景。
關(guān)鍵詞:加密算法 KEELOQ 單片機(jī) 跳碼技術(shù)
當(dāng)今的編解碼電路已經(jīng)朝著高度集成化和微電腦化發(fā)展。像普通的固定編解碼芯片如MCl45026/145027、PT2262/2272等已被廣泛應(yīng)用于公用系統(tǒng)中,給生活帶來了方便。然而這些芯片不能保證系統(tǒng)的安全性。由于這些系統(tǒng)每次發(fā)送的數(shù)據(jù)流一模一樣,只是高低電平的組合,第三方通過捕捉設(shè)備,一旦用戶信號出現(xiàn),便可瞬間取得合法的身份識別碼;或使用編碼掃描設(shè)備,主動攻擊解碼芯片。因此保證系統(tǒng)的安全性是一個(gè)很現(xiàn)實(shí)的問題[1]。在此背景下,基于加密算法的編解碼IC的安全機(jī)制得到了應(yīng)用。Microchip公司的KEELOQ技術(shù)是這種技術(shù)的代表[2,3,4]。KEELOQ技術(shù)是一種多變化、抗截獲、安全可靠性高的非線性跳碼加密解密技術(shù)。KEELOQ目前是通過硬件芯片IC(以Mirochip公司的HCS300為代表)實(shí)現(xiàn),主要應(yīng)用于汽車防盜系統(tǒng)和門禁系統(tǒng),是無鑰進(jìn)入系統(tǒng)領(lǐng)域的首選芯片。但也由于硬件芯片本身的限制(其所能加密的數(shù)據(jù)必須預(yù)先寫入EEPROM中),使之很難用于其它(如數(shù)據(jù)加密)領(lǐng)域。
本文把這項(xiàng)封裝在芯片里的KEELOQ加密技術(shù)用軟件方式實(shí)現(xiàn),并針對單片機(jī)的特性進(jìn)行了適當(dāng)改進(jìn)。這種在單片機(jī)中實(shí)現(xiàn)的改進(jìn)算法不僅包含了原來HCS300所具備的所有功能,而且在系統(tǒng)安全性、靈活性、可擴(kuò)展性、傳輸效率等方面均有較大改善,同時(shí)對改進(jìn)算法在數(shù)據(jù)加密領(lǐng)域作了全新的嘗試,以其特殊的密鑰管理方法獨(dú)立于對稱型加密(如DES)與不對稱型加密算法(即公開密鑰體制,如RSA) [1],成為一種適用于無線傳輸領(lǐng)域小型系統(tǒng)的數(shù)據(jù)加密算法。
1 KEELOQ技術(shù)簡介及其硬件實(shí)現(xiàn)
KEELOQ技術(shù)的核心思想[2,3,4]是用64bit的EN_KEY[64:0](加密密鑰)去加密32bit的CSR[31:0](校驗(yàn)碼)得到32bit的CRYP密文。加密機(jī)制為:首先定義一個(gè)非線性表,這個(gè)非線性表有5位輸入NLF_IN[4:0],一位輸出NLF_OUT。它在CSR[31:0]中間隔均勻地取固定5位:I0、I1、I2、I3、I4,通過非線性產(chǎn)生一個(gè)輸出碼NLF_OUT;這一位輸出碼NLF_OUT再與EN_KEY中的15位、CSR中的2位進(jìn)行異或運(yùn)算后輸出第一位輸出碼CRYP[0];每輸出一位后,EN_KEY、CSR分別進(jìn)行移位,EN_KEY作循環(huán)移位,CRYP[0]作為CSR移位的輸入;重復(fù)上述步驟直到輸出32位CRYP[0:31]。依此法,即使32bit的校驗(yàn)碼CSR中只有一位發(fā)生變化,用KEELOQ加密算法得到的CRYP密文也會有50%以上的數(shù)據(jù)位(16bit)發(fā)生變化。
Microchip公司以KEELOQ技術(shù)為基礎(chǔ)開發(fā)了滾動碼系列專用芯片,HCS300是其中較典型的一款。它是一塊8引腳的編碼IC芯片,里面集成了KEELOQ算法和其他一些功能,帶有四個(gè)按鍵接口,實(shí)現(xiàn)15位的功能/命令碼。內(nèi)置192bits(12
評論