一種基于KEELOQ的改進(jìn)加密算法及其在單片機(jī)中的實(shí)現(xiàn)技術(shù)
發(fā)布時(shí)間:2008/6/3 0:00:00 訪問次數(shù):751
    
    
     摘要:討論了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ā)展。像普通的固定編解碼芯片和mc145026/145027、pt2262/2272等已被廣泛應(yīng)用于公用系統(tǒng)中,給生活帶來了方便。然而這些芯片不能保證系統(tǒng)的安全性。由于這些系統(tǒng)每次發(fā)送的數(shù)據(jù)流一模一樣,只是高低電平的組合,第三方面通過捕捉設(shè)備,一旦用戶信號出現(xiàn),便可瞬間取得合法的身份識別碼;或使用編碼掃描設(shè)備,主動攻擊解碼芯片。因此保證系統(tǒng)的安全性是一個(gè)很現(xiàn)實(shí)的問題。在此背景下,基于加密算法的編解碼ic的安全機(jī)制得到了應(yīng)用。microchip公司的keeloq技術(shù)是這種技術(shù)的代表。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),成為一種適用于無線傳輸領(lǐng)域小型系統(tǒng)的數(shù)據(jù)加密算法。1 keeloq技術(shù)簡介及其硬件實(shí)現(xiàn) keeloq技術(shù)的核心思想是用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ā)了滾動碼系統(tǒng)專用芯片,hcs300是其中較典型的一款。它是一塊8引腳的編碼ic芯片,里面集成了keeloq算法和其他一些功能,帶有四個(gè)按鍵接口,實(shí)現(xiàn)15位的功能/命令碼。內(nèi)置192bits(12×16bit words)eeprom,用來存放en_key(加密密鑰)、sn(序列號)、sync(同步碼)、seed(種子碼)等。序列號用來標(biāo)識不同的對象;加密密鑰用來對發(fā)送的數(shù)據(jù)進(jìn)行加密,增加破譯的難度,它不直接發(fā)送出去;同步計(jì)數(shù)器用來抗截獲,每次發(fā)送數(shù)據(jù)時(shí),同步計(jì)數(shù)器的值都被更新,所以每次發(fā)送的數(shù)據(jù)都不一樣。種子碼用于安全學(xué)習(xí)時(shí)參與加密密鑰的生成。接收方必須先通過學(xué)習(xí)來獲得并存儲發(fā)送方的序列號、加解密密鑰和當(dāng)前同步計(jì)數(shù)器的值。學(xué)習(xí)相當(dāng)于身份確認(rèn),只有經(jīng)過學(xué)習(xí)的用戶才能與主機(jī)通信。主機(jī)在接收到信號后,首先比對序列號,然后利用學(xué)習(xí)過程中得到并存儲的加密密鑰對接收的數(shù)據(jù)進(jìn)行解密;接著檢查同步計(jì)數(shù)器是否匹配,在確認(rèn)其匹配后,再去處理接收到的按鍵信令,并根據(jù)接收到的按鍵信令作出相應(yīng)的動作反應(yīng)。hcs300的系統(tǒng)使每次發(fā)送的密文都不相同,有效防止了空中截獲法和數(shù)據(jù)重傳帶來的安全隱患。 hcs300系統(tǒng)的加密密鑰在學(xué)習(xí)過程中經(jīng)密鑰生成算法產(chǎn)生。學(xué)習(xí)分為一般學(xué)習(xí)和安全學(xué)習(xí)。一般模式下,解密解鑰由mkey和sn生成加解密密鑰en_key,其解密密鑰隱含于發(fā)送信息(mkey和sn)中。安全模式下,增加了種子碼seed(當(dāng)四鍵一起按時(shí)發(fā)送),它與mkey和sn一起生成加解密密鑰en_key,而seed_key在平時(shí)并不發(fā)送,這樣增加了安全性。不過,在學(xué)習(xí)時(shí)seed碼的發(fā)送是不經(jīng)過加密的。2 keeloq技術(shù)的不足與改進(jìn)加密算法的提出盡管keeloq技術(shù)有上述獨(dú)特的優(yōu)點(diǎn),但是經(jīng)過深入分析不難發(fā)現(xiàn)keeloq算法及其硬件實(shí)現(xiàn)技術(shù)也存在一些不足:(1)安全性基于出廠密鑰和種碼seed。在hcs300芯片中,加密密鑰en_key是由出廠密鑰mkey、序列號sn和種子碼seed(安全模式)生成的。而sn和seed在發(fā)送數(shù)據(jù)的過程中未經(jīng)加密,是可截獲的
    
    
     摘要:討論了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ā)展。像普通的固定編解碼芯片和mc145026/145027、pt2262/2272等已被廣泛應(yīng)用于公用系統(tǒng)中,給生活帶來了方便。然而這些芯片不能保證系統(tǒng)的安全性。由于這些系統(tǒng)每次發(fā)送的數(shù)據(jù)流一模一樣,只是高低電平的組合,第三方面通過捕捉設(shè)備,一旦用戶信號出現(xiàn),便可瞬間取得合法的身份識別碼;或使用編碼掃描設(shè)備,主動攻擊解碼芯片。因此保證系統(tǒng)的安全性是一個(gè)很現(xiàn)實(shí)的問題。在此背景下,基于加密算法的編解碼ic的安全機(jī)制得到了應(yīng)用。microchip公司的keeloq技術(shù)是這種技術(shù)的代表。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),成為一種適用于無線傳輸領(lǐng)域小型系統(tǒng)的數(shù)據(jù)加密算法。1 keeloq技術(shù)簡介及其硬件實(shí)現(xiàn) keeloq技術(shù)的核心思想是用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ā)了滾動碼系統(tǒng)專用芯片,hcs300是其中較典型的一款。它是一塊8引腳的編碼ic芯片,里面集成了keeloq算法和其他一些功能,帶有四個(gè)按鍵接口,實(shí)現(xiàn)15位的功能/命令碼。內(nèi)置192bits(12×16bit words)eeprom,用來存放en_key(加密密鑰)、sn(序列號)、sync(同步碼)、seed(種子碼)等。序列號用來標(biāo)識不同的對象;加密密鑰用來對發(fā)送的數(shù)據(jù)進(jìn)行加密,增加破譯的難度,它不直接發(fā)送出去;同步計(jì)數(shù)器用來抗截獲,每次發(fā)送數(shù)據(jù)時(shí),同步計(jì)數(shù)器的值都被更新,所以每次發(fā)送的數(shù)據(jù)都不一樣。種子碼用于安全學(xué)習(xí)時(shí)參與加密密鑰的生成。接收方必須先通過學(xué)習(xí)來獲得并存儲發(fā)送方的序列號、加解密密鑰和當(dāng)前同步計(jì)數(shù)器的值。學(xué)習(xí)相當(dāng)于身份確認(rèn),只有經(jīng)過學(xué)習(xí)的用戶才能與主機(jī)通信。主機(jī)在接收到信號后,首先比對序列號,然后利用學(xué)習(xí)過程中得到并存儲的加密密鑰對接收的數(shù)據(jù)進(jìn)行解密;接著檢查同步計(jì)數(shù)器是否匹配,在確認(rèn)其匹配后,再去處理接收到的按鍵信令,并根據(jù)接收到的按鍵信令作出相應(yīng)的動作反應(yīng)。hcs300的系統(tǒng)使每次發(fā)送的密文都不相同,有效防止了空中截獲法和數(shù)據(jù)重傳帶來的安全隱患。 hcs300系統(tǒng)的加密密鑰在學(xué)習(xí)過程中經(jīng)密鑰生成算法產(chǎn)生。學(xué)習(xí)分為一般學(xué)習(xí)和安全學(xué)習(xí)。一般模式下,解密解鑰由mkey和sn生成加解密密鑰en_key,其解密密鑰隱含于發(fā)送信息(mkey和sn)中。安全模式下,增加了種子碼seed(當(dāng)四鍵一起按時(shí)發(fā)送),它與mkey和sn一起生成加解密密鑰en_key,而seed_key在平時(shí)并不發(fā)送,這樣增加了安全性。不過,在學(xué)習(xí)時(shí)seed碼的發(fā)送是不經(jīng)過加密的。2 keeloq技術(shù)的不足與改進(jìn)加密算法的提出盡管keeloq技術(shù)有上述獨(dú)特的優(yōu)點(diǎn),但是經(jīng)過深入分析不難發(fā)現(xiàn)keeloq算法及其硬件實(shí)現(xiàn)技術(shù)也存在一些不足:(1)安全性基于出廠密鑰和種碼seed。在hcs300芯片中,加密密鑰en_key是由出廠密鑰mkey、序列號sn和種子碼seed(安全模式)生成的。而sn和seed在發(fā)送數(shù)據(jù)的過程中未經(jīng)加密,是可截獲的
熱門點(diǎn)擊
- 基于IDL的SAR圖像處理及質(zhì)量評估系統(tǒng)
- 高性能浮點(diǎn)DSP芯片TMS320VC33
- ADSP-TSl01的DMA在紅外圖像處理系
- 采用DSP內(nèi)核技術(shù)進(jìn)行語音壓縮開發(fā)
- TMS320C55x DSP并行處理技術(shù)分析
- TMS320C54X DSP混合編程的方法研
- DSP常用的外圍芯片清單
- 一種基于KEELOQ的改進(jìn)加密算法及其在單片
- IMS A121型圖像信息壓縮專用IC
- DSP開發(fā)入門問答精華
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究