<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > [組圖]一種基于KEELOQ的改進(jìn)加密算法及其在單片機中的實(shí)

[組圖]一種基于KEELOQ的改進(jìn)加密算法及其在單片機中的實(shí)

作者: 時(shí)間:2011-04-29 來(lái)源:網(wǎng)絡(luò ) 收藏

當今的編解碼電路已經(jīng)朝著(zhù)高度集成化和微電腦化發(fā)展。像普通的固定編解碼芯片如MCl45026/145027、PT2262/2272等已被廣泛應用于公用系統中,給生活帶來(lái)了方便。然而這些芯片不能保證系統的安全性。由于這些系統每次發(fā)送的數據流一模一樣,只是高低電平的組合,第三方通過(guò)捕捉設備,一旦用戶(hù)信號出現,便可瞬間取得合法的身份識別碼;或使用編碼掃描設備,主動(dòng)攻擊解碼芯片。因此保證系統的安全性是一個(gè)很現實(shí)的問(wèn)題[1]。在此背景下,的編解碼IC的安全機制得到了應用。Microchip公司的技術(shù)是這種技術(shù)的代表[2,3,4]。技術(shù)是一種多變化、抗截獲、安全可靠性高的非線(xiàn)性跳碼解密技術(shù)。目前是通過(guò)硬件芯片IC(以Mirochip公司的HCS300為代表)實(shí)現,主要應用于汽車(chē)防盜系統和門(mén)禁系統,是無(wú)鑰進(jìn)入系統領(lǐng)域的首選芯片。但也由于硬件芯片本身的限制(其所能的數據必須預先寫(xiě)入EEPROM中),使之很難用于其它(如數據加密)領(lǐng)域。
  本文把這項封裝在芯片里的KEELOQ加密技術(shù)用軟件方式實(shí)現,并針對的特性進(jìn)行了適當。這種在中實(shí)現的不僅包含了原來(lái)HCS300所具備的所有功能,而且在系統安全性、靈活性、可擴展性、傳輸效率等方面均有較大改善,同時(shí)對在數據加密領(lǐng)域作了全新的嘗試,以其特殊的密鑰管理方法獨立于對稱(chēng)型加密(如DES)與不對稱(chēng)型加密算法(即公開(kāi)密鑰體制,如RSA) [1],成為一種適用于無(wú)線(xiàn)傳輸領(lǐng)域小型系統的數據加密算法。
1 KEELOQ技術(shù)簡(jiǎn)介硬件實(shí)現
  KEELOQ技術(shù)的核心思想[2,3,4]是用64bit的EN_KEY[64:0](加密密鑰)去加密32bit的CSR[31:0](校驗碼)得到32bit的CRYP密文。加密機制為:首先定義一個(gè)非線(xiàn)性表,這個(gè)非線(xiàn)性表有5位輸入NLF_IN[4:0],一位輸出NLF_OUT。它在CSR[31:0]中間隔均勻地取固定5位:I0、I1、I2、I3、I4,通過(guò)非線(xiàn)性產(chǎn)生一個(gè)輸出碼NLF_OUT;這一位輸出碼NLF_OUT再與EN_KEY中的15位、CSR中的2位進(jìn)行異或運算后輸出第一位輸出碼CRYP[0];每輸出一位后,EN_KEY、CSR分別進(jìn)行移位,EN_KEY作循環(huán)移位,CRYP[0]作為CSR移位的輸入;重復上述步驟直到輸出32位CRYP[0:31]。依此法,即使32bit的校驗碼CSR中只有一位發(fā)生變化,用KEELOQ加密算法得到的CRYP密文也會(huì )有50%以上的數據位(16bit)發(fā)生變化。
  Microchip公司以KEELOQ技術(shù)為基礎開(kāi)發(fā)了滾動(dòng)碼系列專(zhuān)用芯片,HCS300是其中較典型的一款。它是一塊8引腳的編碼IC芯片,里面集成了KEELOQ算法和其他一些功能,帶有四個(gè)按鍵接口,實(shí)現15位的功能/命令碼。內置192bits(12×16bit words) EEPROM,用來(lái)存放EN_KEY(加密密鑰)、SN(序列號)、SYNC(同步碼)、SEED(種子碼)等。序列號用來(lái)標識不同的對象;加密密鑰用來(lái)對發(fā)送的數據進(jìn)行加密,增加破譯的難度,它不直接發(fā)送出去;同步計數器用來(lái)抗截獲,每次發(fā)送數據時(shí),同步計數器的值都被更新,所以每次發(fā)送的數據都不一樣。種子碼用于安全學(xué)習時(shí)參與加密密鑰的生成。接收方必須先通過(guò)學(xué)習來(lái)獲得并存儲發(fā)送方的序列號、加解密密鑰和當前同步計數器的值。學(xué)習相當于身份確認,只有經(jīng)過(guò)學(xué)習的用戶(hù)才能與主機通信。主機在接收到信號后,首先比對序列號,然后利用學(xué)習過(guò)程中得到并存儲的加密密鑰對接收的數據進(jìn)行解密;接著(zhù)檢查同步計數器是否匹配,在確認其匹配后,再去處理接收到的按鍵信令,并根據接收到的按鍵信令作出相應的動(dòng)作反應。HCS300系統使每次發(fā)送的密文都不相同,有效防止了空中截獲法和數據重傳帶來(lái)的安全隱患。
  HCS300系統的加密密鑰在學(xué)習過(guò)程中經(jīng)密鑰生成算法產(chǎn)生。學(xué)習分為一般學(xué)習和安全學(xué)習。一般模式下,解密密鑰由MKEY和SN生成加解密密鑰EN_KEY,其解密密鑰隱含于發(fā)送信息(MKEY和SN)中。安全模式下,增加了種子碼SEED(當四鍵一起按時(shí)發(fā)送),它與MKEY和SN一起生成加解密密鑰EN_KEY,而SEED_KEY在平時(shí)并不發(fā)送,這樣增加了安全性。不過(guò),在學(xué)習時(shí)SEED碼的發(fā)送是不經(jīng)過(guò)加密的。
2 KEELOQ技術(shù)的不足與改進(jìn)加密算法的提出
  盡管KEELOQ技術(shù)有上述獨特的優(yōu)點(diǎn),但是經(jīng)過(guò)深入分析不難發(fā)現KEELOQ算法硬件實(shí)現技術(shù)也存在一些不足:
  (1)安全性出廠(chǎng)密鑰和種子碼SEED。在HCS300芯片中,加密密鑰EN_KEY是由出廠(chǎng)密鑰MKEY、序列號SN和種子碼SEED(安全模式)生成的。而SN和SEED在發(fā)送數據的過(guò)程中未經(jīng)加密,是可截獲的。理論上出廠(chǎng)密鑰一經(jīng)確定一般不會(huì )更改。所以,一旦出廠(chǎng)密鑰外泄,后果極其嚴重。
  (2)擴展功能弱、升級不方便。其算法由硬件芯片實(shí)現。其所能實(shí)現的功能由按鍵決定。其按鍵只有4個(gè),最多也只有15種組合。發(fā)送方無(wú)法附加其余的信息(對于大多領(lǐng)域來(lái)說(shuō),它要求能發(fā)送一些附加信息,如用戶(hù)的姓名、年齡、出生日期等),功能擴展幾乎不可能。另外,某一特定型號的芯片其序列號和同步計數器的長(cháng)度是固定的。當系統建成后,開(kāi)發(fā)者如果想只通過(guò)軟件升級來(lái)擴充系統的容量或提高系統的性能、用硬件實(shí)現技術(shù)基本不可能。
  (3)對功能碼的檢錯和糾錯的功能較弱。在無(wú)線(xiàn)傳輸中,出現誤碼的概率比較大。功能碼代表所要實(shí)現的功能,如開(kāi)門(mén)、報警、開(kāi)閥等。如果發(fā)送的數據是0010,而接收的數據為0100,其后果非常嚴重[4]。
  (4)傳輸效率較低。在發(fā)送的數據中,其有用信息(如序列號、功能碼)全部在固定碼中,加密碼只作為一種加密用的附加數據,這樣不但降低了安全性,而且傳輸效率不高。以HCS300為例,發(fā)送的66位數據中只有32位為有用信息,傳輸效率比較低。
  (5)無(wú)法用于數據加密。由于其是由硬件芯片實(shí)現的,它所能加密的數據只限于序列號、同步碼等預先存在HCS300的EEPROM中的數據。它沒(méi)有數據入口,無(wú)法對數據流進(jìn)行加密。
  (6)受硬件設計限制,靈活性差,成本較高,由于不擁有核心技術(shù),容易受制于人[4]。
  上述分析,筆者結合的特性,對KEELOQ算法提出如下改進(jìn):
  (1)保留出廠(chǎng)密鑰,但引入隨機數,防止出廠(chǎng)密鑰和種子碼的泄漏,用戶(hù)可隨時(shí)改變加密密鑰。
  (2)改進(jìn)數據傳輸的格式,把同步碼映射到各組待加密的數據中,提高傳輸效率。
  (3)增加對功能碼或關(guān)鍵數據的檢錯和糾錯的功能。
  (4)增加數據入口,改變對加密數據的長(cháng)度要求,使其適合批量的數據加密。
  數據加密系統的兩個(gè)基本要素是加密算法和密鑰管理。密鑰是控制加密算法和解密算法的關(guān)鍵信息,其產(chǎn)生、傳輸、存儲等工作十分重要。目前數據加密技術(shù)可以分為二類(lèi),即對稱(chēng)型加密、不對稱(chēng)型加密[5]。對稱(chēng)型加密(如DES算法)使用單個(gè)密鑰對數據進(jìn)行加密或解密。不對稱(chēng)型加密算法也稱(chēng)公用密鑰算法(如RSA算法),其特點(diǎn)是有二個(gè)密鑰(即公用密鑰和私有密鑰),只有二者搭配使用才能完成加密和解密的全過(guò)程。但兩者都在密鑰的管理和分發(fā)上遇到一些困難。KEELOQ密鑰管理機制的主要特點(diǎn)是對每個(gè)用戶(hù)都有自己獨特的加解密密鑰,在學(xué)習過(guò)程中發(fā)送到主機并保存。但密鑰信息隱含在每次發(fā)送的信息(SN和MKEY)中(即使在安全模式下,種子碼SEED也是固定碼,可截獲),并且依賴(lài)于生產(chǎn)廠(chǎng)家和出廠(chǎng)密鑰,不可更改。本改進(jìn)算法主要針對無(wú)線(xiàn)傳輸領(lǐng)域的小型系統,可以在學(xué)習過(guò)程中引入隨機參數RANDOM,與MKEY、SN一起生成EN_KEY。這個(gè)隨機數RANDOM在同一次學(xué)習時(shí)相同,但每次學(xué)習時(shí)都會(huì )改變。這樣,加密密鑰就不依賴(lài)于生產(chǎn)廠(chǎng)家和出廠(chǎng)密鑰并且在用戶(hù)感到密鑰有可能泄漏時(shí)可隨時(shí)改變數據,增加了安全性。
3 改進(jìn)加密算法在單片機中的實(shí)現
  整個(gè)系統分為用戶(hù)端(CLIENT)和主機端(SERVER),系統框圖如圖1所示。在本系統中,考慮功耗、外圍功能等需要,選用飛利浦的LPC76X系列芯片[[6]。P87LPC764 是20 腳封裝的單片機,可以在寬范圍的性能要求下實(shí)現高集成度低成本的解決方案,4Kbits的ROM,128bits的RAM,32Byte用戶(hù)代碼區可用來(lái)存放序列碼及設置參數,內帶看門(mén)狗定時(shí)器,處理器的指令執行速度為標準80C51 MCU的兩倍。EEPROM發(fā)送部分選用AT2401(128×8 bits),接收部分選用AT2404(1024×8 bits),8-DIP封裝,I2C總線(xiàn)接口,擦寫(xiě)次數>1百萬(wàn)次,保存時(shí)間>100年。

本文引用地址:http://dyxdggzs.com/article/172855.htm

圖1 系統結構

  用戶(hù)必須經(jīng)過(guò)學(xué)習后才能與主機通信。在學(xué)習過(guò)程中,用戶(hù)把序列號SN、出廠(chǎng)密鑰MKEY、加密密鑰EN_KEY送給主機,主機對每一個(gè)用戶(hù)要開(kāi)辟一片EEPROM來(lái)存儲用戶(hù)信息。其具體分布如表1所示。

  在主機SERVER端,每個(gè)用戶(hù)CLIENT都需要有16bits的存儲空間。所以本系統共可接收511個(gè)用戶(hù)的信息。整個(gè)系統的設計充分考慮系統的升級和功能的擴展。其中出廠(chǎng)密鑰、序列號、加密密鑰、隨機數均可按需要進(jìn)行擴展或縮減。如果從安全角度考慮,可把序列號存放在微處理器的ROM中。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>